자바 알고리즘 문제

저주의 숫자 3

쿠키키키키 2024. 5. 3. 15:00

3x 마을 사람들은 3을 저주의 숫자라고 생각하기 때문에 3의 배수와 숫자 3을 사용하지 않습니다. 3x 마을 사람들의 숫자는 다음과 같습니다.

 

 

정수 n이 매개변수로 주어질 때, n을 3x 마을에서 사용하는 숫자로 바꿔 return하도록 solution 함수를 완성해주세요.

class Solution {
    public int solution(int n) {
        int answer = 0;
        answer=n;
        for(int i=1; i<=n ; i++){
            if(i%3==0){
                answer++;
            }else if((i+"").contains("3")){
                answer++;
            }

        }
        for(int i=n+1; i<=answer; i++){
            if(i%3==0){
                answer++;
            }else if((i+"").contains("3")){
                answer++;
            }
        }

        return answer;
    }
}

for 문으로 1부터 3의 배수인지 3을 갖고 있는지 판별해서 더해주고

더해지는 만큼 바뀌는 수도 3과 3의 배수를 갖고 있으면 안되니 한번더 검사해주었다.

 

근데 다른 사람의 풀이를 보니 

훨씬 더 간단하고 좋은 풀이가 있었다. 

 

이렇게 하면 3의 배수와 3을 갖고 있을때마다 i 늘어나지 않기 때문에 아주 편리하게

답을 구할수 있다!!! 

'자바 알고리즘 문제' 카테고리의 다른 글

다항식 더하기  (0) 2024.05.08
유한소수 판별하기  (0) 2024.05.07
무작위로 k개의 수 뽑기  (0) 2024.05.02
왼쪽 오른쪽  (1) 2024.05.01
잘라서 배열로 저장하기  (0) 2024.04.30