본문 바로가기
코딩테스트/프로그래머스

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

by drCode 2023. 12. 19.
728x90
반응형

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

 

프로그래머스

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

programmers.co.kr

 

저주의 숫자 3

 

 

문제 설명

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

3x 마을 사람들의 숫자는 다음과 같습니다.

10진법 3x 마을에서 쓰는 숫자 10진법 3x 마을에서 쓰는 숫자
1 1 6 8
2 2 7 10
3 4 8 11
4 5 9 14
5 7 10 16

 

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


제한사항
  • 1 ≤ n ≤ 100

 

입출력 예

 

n result
15 25
40 76

입출력 예 설명

입출력 예 #1

  • 15를 3x 마을의 숫자로 변환하면 25입니다.

입출력 예 #2

  • 40을 3x 마을의 숫자로 변환하면 76입니다.

 

문제 풀이

제시된 숫자의 범위(1과 100 사이) 안에서 3의 배수와 3을 사용하지 않는다고 나와 있다.

 

3이 포함되고, 3의 배수가 되는 조건은 아래와 같다.

String.valueOf(number).contains("3") && number % 3 == 0

 

숫자를 문자열로 변환한 것이 3이 포함되고 3으로 나누어 떨어지는 수

 

총 풀이는 아래와 같다.

class Solution {
    public int solution(int n) {
        int answer = 0;
        for(int i = 1; i <= n; i++) {
            answer++;
            
            while(true) {
                if(!String.valueOf(answer).contains("3") && answer % 3 != 0) {
                    break;
                }
                answer++;
            }    
        }
        
        return answer;
    }
}

 

728x90
반응형

댓글