※ 프로그램 구현문제
□ 문제설명
어느 누군가가 타임머신을 타고 과거로 가서 숫자 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을 포함하지 않는 자연수입니다.
□ return 값 설명
자연수 num에 1을 더한 수를 return 해주세요.
□ 예시
num | return |
9949999 | 9951111 |
□ 예시설명
9,949,999에 1을 더하면 9,950,000이지만 0은 존재하지 않으므로 9,951,111이 됩니다.
방법1. String으로 받아서 contains 0이면 1더해주기
// 다음과 같이 import를 사용할 수 있습니다.
import java.util.*;
class Main {
public long solution(long num) {
num+=1;
String numStr= Long.toString(num);
while(true){
if(numStr.contains("0")){
num++;
numStr= Long.toString(num);
}
if(!numStr.contains("0"))
break;
}
long answer = num;
return answer;
}
// 아래는 테스트케이스 출력을 해보기 위한 main 메소드입니다.
public static void main(String[] args) {
Main sol = new Main();
long num = 9949999;
long ret = sol.solution(num);
// [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
System.out.println("solution 메소드의 반환 값은 " + ret + " 입니다.");
}
}
다른 사람들은 어떻게 풀었나보니까 replaceAll로 바꾼사람도 있었다.
public long solution(long num) {
num += 1;
String str = String.valueOf(num);
str = str.replaceAll("0", "1");
long answer = Long.parseLong(str);
return answer;
}
'알고리즘 공부 > Cos Pro 문제풀이' 카테고리의 다른 글
[COS PRO] [1차] 문제3) 계산기 by 문자열 - JAVA (0) | 2022.11.28 |
---|---|
COS PRO [1차] 문제2) 해밍 거리 구하기 - JAVA (0) | 2022.11.25 |
Cos Pro [1차] 문제1) 음식전문점 운영 - JAVA (2) | 2022.11.25 |