COS-Pro-1차 1급 1번
2020-02-19
위 문제는 YBM COS-Pro의 1차 1급 1번 문제에 관한 설명입니다.
문제
어느 누군가가 타임머신을 타고 과거로 가서 숫자 0이 없는 수 체계를 전파했습니다.
역사가 바뀌어 이제 사람들의 의식 속엔 0이란 숫자가 사라졌습니다.
따라서, 현재의 수 체계는 1, 2, 3, …, 8, 9, 11, 12, …와 같이 0이 없게 바뀌었습니다.
0을 포함하지 않은 자연수 num이 매개변수로 주어질 때, 이 수에 1을 더한 수를 return 하도록 solution 메소드를 완성해주세요.
입력
자연수 num이 solution 메소드의 매개변수로 주어집니다.
- num은 1 이상 999,999,999,999,999,999 이하의 0을 포함하지 않는 자연수입니다.
출력
자연수 num에 1을 더한 수를 return 해주세요.
예시
num | return |
---|---|
9949999 | 9951111 |
예시 설명
9,949,999에 1을 더하면 9,950,000이지만 0은 존재하지 않으므로 9,951,111이 됩니다.
import java.util.Scanner;
public class Main {
private static long solution(long num) {
num++;
long digit = 1;
while (num / digit % 10 == 0) {
num += digit;
digit *= 10;
}
return num;
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
long num = scanner.nextLong();
num = solution(num);
System.out.println(num);
}
}
코드 설명
-
num보다 1증가 시킵니다.
-
digit을 이용해서 각 자리수마다 0이라는 숫자가 존재하는지 파악을 해야합니다.
-
num을 digit으로 나누고 %10을 하면 각 자릿수 마다의 값이 0인지를 확인 합니다.
-
만약 0이 존재한다면 num에 digit 을 추가합니다.