코딩테스트/JAVA

[JAVA/프로그래머스] 저주의 숫자 3

할루솔이 2024. 2. 7. 10:06
반응형

https://school.programmers.co.kr/learn/courses/30/lessons/120871#

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

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


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

제한사항
1 ≤ n ≤ 100


입출력 예


입출력 예 설명
입출력 예 #1
15를 3x 마을의 숫자로 변환하면 25입니다.


입출력 예 #2
40을 3x 마을의 숫자로 변환하면 76입니다.

 


👉 풀이과정

3을 포함하는 모든 숫자와 3의 배수를 피해야 하니까

먼저 contains()를 사용해서 거르고, 나머지 값을 구해서 2차로 걸렀다.

배열 인덱스를 i말고 다른 변수로 설정해서

i가 3과 연관된 숫자일 경우 값만 증가하고, 배열 인덱스는 그대로!

배열에 값들이 저장되었으니 answer에는 배열 값만 그대로 넣어주면 된다.

 

📌 제출코드

class Solution {
    public int solution(int n) {
        int answer = 0;
        int[] arr = new int[200];
        int index = 1;
        
        for(int i=1;i<=arr.length;i++){
            String str = String.valueOf(i);
            
            if(!str.contains("3") && i % 3 != 0){
                arr[index] = i;
                index++;
            }
        }
        
        answer = arr[n];
        
        return answer;
    }
}

 

 

 

반응형