문제: 코딩테스트 연습 - 저주의 숫자 3 | 프로그래머스 스쿨 (programmers.co.kr)
문제설명
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 |
나의 문제 풀이
class Solution {
public int solution(int n) {
int answer = 0;
for (int i = 0; i < n; i++) {
answer++;
while (answer % 3 == 0 || String.valueOf(answer).contains("3")) {
answer++;
}
}
return answer;
}
}
다른 사람의 문제풀이
//다른사람풀이1
class Solution {
public int solution(int n) {
int answer = 0;
for (int i = 1; i <= n; i++) {
answer++;
if (answer % 3 == 0 || String.valueOf(answer).contains("3")) {
i--;
}
}
return answer;
}
}
//다른사람풀이2
class Solution {
public int solution(int n) {
String str;
for (int i = 1; i <= n; i++){
str = ""+i;
if(str.contains("3") || i%3 == 0) n++;
}
return n;
}
}
느낀점
while문 보다 다른사람의 풀이의 if문을 이용한 방법이 인상깊었다!
'코딩테스트 연습 > 프로그래머스 LV.0' 카테고리의 다른 글
[프로그래머스] Lv.0 삼각형의 완성조건 (2) - 자바(Java) (0) | 2024.05.05 |
---|---|
[프로그래머스] Lv.0 외계어 사전 - 자바(Java) (0) | 2024.05.03 |
[프로그래머스] Lv.0 평행 - 자바(Java) (0) | 2024.04.29 |
[프로그래머스] Lv.0 겹치는 선분의 길이 - 자바(Java) (0) | 2024.04.26 |
[프로그래머스] Lv.0 유한소수 판별하기 - 자바(Java) (0) | 2024.04.25 |