Coding Problem

[BOJ 1515] 수 이어 쓰기

Yepchani 2025. 2. 23. 20:00
반응형

문제

수 이어 쓰기

https://www.acmicpc.net/problem/1515

 

 

풀이

설명

1부터 N까지 모든 수를 차례대로 쓰고, 이 중 0개 이상의 숫자를 지우고 남은 수를 이어 붙인 수를 봤을 때, 가능한 N의 최솟값을 구하는 문제입니다.

 

  1. 포인터를 이용해 현재 비교하고 있는 숫자의 위치를 관리합니다.
  2. 숫자 카운터를 1부터 하나씩 증가시키면서 문자열로 변환해 남은 수와 비교합니다.
  3. 숫자 문자열을 순회하면서 해당 수가 포인터가 가리키는 수와 일치하면 포인터를 증가시킵니다.
  4. 남은 수가 없을 때의 숫자 카운터를 반환하면 됩니다.

 

예시 코드

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