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

YH·2023년 7월 20일
0

문제

저주의 숫자 3 : 문제 링크


문제 분석

  • 3x 마을 사람들은 3을 저주의 숫자라고 생각하기 때문에 3의 배수와 숫자 3을 사용하지 않는다. 정수 n이 매개변수로 주어질 때, n을 3x 마을에서 사용하는 숫자로 바꿔 return
  • answer 변수에 매개변수 n값을 저장하고, for loop내의 if문에서 i가 3의 배수이거나 숫자 3이 들어간 경우 answer를 1씩 늘림
  • 1이 늘어난 answer값이 3의 배수이거나 숫자 3이 들어간 경우도 있으므로, while loop내의 if문에서 그 경우 answer를 1씩 늘리고, 아닌 경우 탈출 (n은 100이하의 값이지만, answer의 십의 자리가 3인 경우도 고려해야함) 하고 answer를 return

풀이

#include <string>
#include <vector>

using namespace std;

int solution(int n) {
    int answer = n;
    for(int i = 1; i < n; ++i) {
        if(i % 3 == 0 || i / 10 == 3 || i % 10 == 3) answer++;
        while(1) {
            if(answer % 3 == 0 || answer / 10 == 3 || answer % 10 == 3 || (answer % 100) / 10 == 3) answer++;
            else break;
        }
    }
    return answer;
}
profile
Keep Recycling Your Dreams

1개의 댓글

comment-user-thumbnail
2023년 7월 20일

아주 유용한 정보네요!

답글 달기