
내가 작성한 코드
class Solution {
public int solution(int n) {
int answer = 1; // 초기값: answer=1, 시작 숫자
for (int i = 1; i <= n; i++) { // 반복: 유효 숫자 개수 카운트 (i:1~n)
if (answer % 3 == 0) { // 조건: 3의 배수 체크
answer++; // 처리: 다음 숫자로 이동
i--; // 보정: 유효 숫자 미증가
continue; // 반복: 다음 루프 실행
}
if (String.valueOf(answer).contains("3")) { // 조건: 숫자 내 '3' 포함 여부
answer++; // 처리: 다음 숫자 선택
i--; // 보정: 유효 숫자 미증가
continue; // 반복: 다음 루프 실행
}
answer++; // 유효: 조건 미충족 -> 다음 숫자 준비
}
return answer - 1; // 반환: 마지막 증가 보정 (유효 숫자 n번째)
}
}
- 문제점 반복적인 동작이 보임
다른 사람의 코드
class Solution {
public int solution(int n) {
int answer = 0;
for (int i = 1; i <= n; i++) {
answer++;
if (answer % 3 == 0 || String.valueOf(answer).contains("3")) {
i--;
}
}
return answer;
}
}
내 코드에서 문제였던 반복적인 동작이 해결된 모습
Share article