inblog logo
|
moohyun
    알고리즘문제풀기

    저주의 숫자 3

    난이도 중하
    화낼거양's avatar
    화낼거양
    Apr 22, 2025
    저주의 숫자 3
    Contents
    정답
     
    출처 : https://school.programmers.co.kr/learn/courses/30/lessons/120871
     

    문제 설명

    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입니다.
     
     
    기본적으로 주어진 코드 :
    class Solution { public int solution(int n) { int answer = 0; return answer; } }
     
     

    정답

     
    class Solution { public int solution(int n) { int number = 1; int count = 0; while (count != n) { // count가 n이 되기 전까지 반복 if (number == 1 || number == 2) { // 1과 2는 신경쓸 필요 없이 count 상승 number++; count++; continue; } boolean isHaveNumber3 = false; String str = String.valueOf(number); for (int i = 0; i < str.length(); i++) { // 문자'3'이 있다면 isHaveNumber3를 true로 변경 if (str.charAt(i) == '3') { isHaveNumber3 = true; } } if (number % 3 != 0 && !isHaveNumber3) { // 3의 배수가 아니면서, 숫자에 3문자가 없을 때 count 상승 count++; } number++; } return number - 1; // count가 n과 같아지더라도 반복문 마지막에 number를 1증가 시키기 때문에 1을 뺀 값을 반환 } }
     
    Share article
    Contents
    정답

    moohyun

    RSS·Powered by Inblog