class Solution {
public int solution(int n) {
int answer = 0;
int cnt = 0;
while (cnt != n) {
answer++;
cnt++;
if (Integer.toString(answer).contains("3") || answer % 3 == 0) {
cnt--;
}
}
return answer;
}
}
Solution 2) 다른 사람의 풀이
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;
}
}
코드 및 문제 리뷰
3x 마을의 수로 주어진 수 n을 표현하는 문제이다. 3x 마을은 3과 관련 된 수를 모두 없앤 마을이기에 3의 배수 및 3이 들어간 수는 제외하여 반환해야한다.
나는 cnt 변수를 만들어 3x 마을의 요건에 맞지 않다면 마이너스를 해가며 n의 수치를 맞춰나갔다. 다른 사람의 풀이를 보니 변수를 굳이 만들 필요 없이도 해결할 수 있는 문제였다.
로직을 생각해냈을 때 바로 구현해낸 풀이였는데, 조금만 더 생각해보고 더 좋은 코드를 만들 수 있게 해야겠다.