Java/Coding Test

저주의 숫자 3 문제풀이

최고다최코딩 2023. 9. 17. 21:45
728x90

3의 배수나 3이 들어간 수를 쓰지 않을 때 10진수를 표현한 수는? 

public int solution(int n) {

int answer = 1;

int count = 1;

do{

if((answer+"").contains("3")||answer%3==0){

answer= answer+ 1;//하고 나서도 다시 체크

count--;

}else{

if(count==n)break;

answer = answer+1;

}

 

count++;

}while(count<=n);

return answer;

}

answer를 증가시키는데 3이나 3의 배수인 수는 count를 감소시켜 한번더 체크하여 answer를 증가시키도록 

 

public int solution2(int n) {

int answer = 0;

for(int i=0; i<n; i++) {

answer++;

if((answer+"").contains("3")||answer%3==0)i--;

}

return answer;

}

for문으로 간단하게 만드는 방법도 있다..