0. 문제
풀이한 문제 - 저주의 숫자 3 (프로그래머스 입문 / Lv.0 / 정답률 73%)
https://school.programmers.co.kr/learn/courses/30/lessons/120871
1. 테스트 케이스 분석
문제에는 1-10, 15, 40의 테스트 케이스만 제시되어있는데
3의 배수가 아니지만 일의 자리에 6과 9가 포함된 경우는
10-14 사이의 값에 있기 때문에 모두 계산해보았다
아무튼 테스트 케이스를 분석했을 때
해당 숫자 자체가 3의 배수거나
일의 자리 / 십의 자리 / 백의 자리 중 어느 자리라도 3, 6, 9 면 안 된다
처음에는 1 <= n <= 100 조건 때문에
백의 자리는 고려하지 않아도 되는 줄 알았는데
제시된 조건은 n의 값, 즉 10진수 값이고
3x 마을에서 사용하는 result 값과는 관련이 없다
2. 코드 및 풀이
result 값을 의미하는 변수 r을 선언했다
1부터 입력 받은 십진수 n까지 모든 숫자들의 3x마을 숫자를 구하기 위해
i가 1부터 n까지 반복하는 루프를 작성했다
조건에 해당하는 경우 result 값을 +1 하도록 했고
+1을 한 숫자가 또 조건에 해당할 수 있으니
조건을 만족하면 무한 반복할 수 있도록 while문을 작성했다
다음 차례의 i값, 즉 다음 차례의 십진수 값을 위해
result값이 1 증가해야하므로 r++ 문을 작성했다
출력할 때는 다음 십진수 값을 위해 증가한 값을 빼줘야하므로
r-1을 리턴하도록 했다
해당 게시글에 사용된 PPT 이미지는
모두 직접 제작했습니다
'[ Computer Science ] > Algorithm_C++' 카테고리의 다른 글
[백준/C++/Greedy] 11047 동전 0 (0) | 2024.08.19 |
---|---|
[백준/C++/Graph] 16928 뱀과 사다리 게임 (0) | 2024.07.28 |
[백준/C++/DP] 1463 1로 만들기 (0) | 2024.06.28 |
[프로그래머스/C++] 주사위 게임 3 (0) | 2024.02.04 |
[프로그래머스/C++] 연속된 수의 합 (0) | 2024.02.04 |
[프로그래머스/C++] 최빈값 구하기 (0) | 2024.02.04 |
[프로그래머스/C++] 유한소수 판별하기 (1) | 2024.02.04 |