반응형
문제
수 이어 쓰기
https://www.acmicpc.net/problem/1515
풀이
설명
1부터 N까지 모든 수를 차례대로 쓰고, 이 중 0개 이상의 숫자를 지우고 남은 수를 이어 붙인 수를 봤을 때, 가능한 N의 최솟값을 구하는 문제입니다.
- 포인터를 이용해 현재 비교하고 있는 숫자의 위치를 관리합니다.
- 숫자 카운터를 1부터 하나씩 증가시키면서 문자열로 변환해 남은 수와 비교합니다.
- 숫자 문자열을 순회하면서 해당 수가 포인터가 가리키는 수와 일치하면 포인터를 증가시킵니다.
- 남은 수가 없을 때의 숫자 카운터를 반환하면 됩니다.
예시 코드
function solution() {
const n = input();
let num = 0;
let ptr = 0;
while (ptr < n.length) {
num++;
const str = String(num);
for (let i = 0; i < str.length; i++) {
if (ptr >= n.length) break;
if (str[i] === n[ptr]) ptr++;
}
}
return num;
}
'Coding Problem' 카테고리의 다른 글
[BOJ 1043] 거짓말 (0) | 2025.02.25 |
---|---|
[BOJ 2003] 수들의 합 2 (0) | 2025.02.24 |
[BOJ 1965] 상자넣기 (0) | 2025.02.22 |
[BOJ 14719] 빗물 (0) | 2025.02.21 |
[BOJ 20055] 컨베이어 벨트 위의 로봇 (0) | 2025.02.20 |