

재귀나 반복문으로 풀 수 있는데, 결국 반복문으로 풀었다.
중복되는 코드가 있어 좋은 코드는 아닌듯.
class Solution {
public int solution(int n) {
int answer = 1;
int count = 1;
while (count<=n) {
if (!(String.valueOf(answer).contains("3") || (answer%3==0))) {
count++;
}
if (count<=n) {
answer++;
}
}
return answer;
}
}
다른 사람 풀이를 봤는데, 이 풀이가 제일 유사하면서도 깔끔한 것 같다.
나는 count를 증가시키다가 3의 배수나 3이 나오면 count의 상승을 억제하는 방향으로 갔는데,
이 풀이는 i(내 풀이의 count)를 감소시켜 상승을 억제시키는 방향으로 함.
원리는 똑같지만, 내 풀이는 마지막에 불필요한 count를 한 번 더 셈해주어 if문을 하나 추가해야하는 비효율적인 코드가 되었는데, 이 풀이는 그런게 없다.
class Solution {
public int solution(int n) {
int answer = 1;
int count = 1;
while (count<=n) {
if (!(String.valueOf(answer).contains("3") || (answer%3==0))) {
count++;
}
if (count<=n) {
answer++;
}
}
return answer;
}
}
'프로그래머스 문제풀이 > Level 0' 카테고리의 다른 글
| 문자열밀기 (자바, Java) (0) | 2022.12.14 |
|---|---|
| 치킨쿠폰 (자바, Java) (0) | 2022.12.14 |
| 다음에 올 숫자 (자바, Java) (0) | 2022.12.13 |
| 평행 (자바, Java) (0) | 2022.12.13 |
| 다항식 더하기 (자바, Java) (0) | 2022.12.11 |