프로그래머스 문제풀이/Level 0

저주의 숫자 3 (자바, Java)

뮤츠 2022. 12. 16. 00:01

재귀나 반복문으로 풀 수 있는데, 결국 반복문으로 풀었다.

중복되는 코드가 있어 좋은 코드는 아닌듯.

 

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