📑 1. 문제설명

💡 2. 풀이과정
처음에는 3,6,9 게임을 잘못 이해했다.
3의 배수일 때 박수 치는 걸로 이해해서 해당 숫자를 3으로 나눈 나머지가 0일 때 cnt ++을 하는 실수를 했다.
하지만 오리지널 369게임은 숫자 3, 6, 9가 들어가면 박수를 치는 게임이다.
즉, 숫자 하나 하나가 3 또는 6 또는 9 값을 가지면 횟수를 카운트하고 마지막에 총 횟수를 리턴한다.
주어진 숫자를 문자열로 바꿔서 각 자릿수를 탐색해도 되지만
이 문제에서 어차피 숫자의 순서는 상관 없고
주어진 order 안에서 3, 6, 9가 총 몇개인지 갯수면 세면 되는 문제이기 때문에
주어진 숫자를 10으로 나눈 나머지가 3,6,9에 해당하는지만 확인하면 쉽게 풀 수 있다.
1. 주어진 숫자(order)를 10으로 나눈 나머지가 3, 6, 9이면 cnt 증가
2. order 을 order /10 으로 업데이트
3. 위 과정을 order이 0이 될때까지 반복
4. cnt 값을 리턴한다.
👨💻 3. 정답코드
내가 푼 코드
class Solution {
public int solution(int order) {
int cnt = 0;
while (order > 0) {
// 마지막 자릿수
int digit = order % 10;
// 3, 6, 9일 때 박수
if (digit == 3 || digit == 6 || digit == 9) {
cnt++;
}
// 마지막 자릿수 제거
order /= 10;
}
return cnt;
}
}
이건 숫자를 문자열로 변환해서 확인하는 코드인데 내 코드가 더 간결하고 좋은 것 같다.
public class Solution {
public int solution(int order) {
int clapCount = 0;
// 숫자 order를 문자열로 변환하여 각 자리를 확인
String orderStr = String.valueOf(order);
// 각 자리를 하나씩 확인
for (char digit : orderStr.toCharArray()) {
// 3, 6, 9일 때 박수
if (digit == '3' || digit == '6' || digit == '9') {
clapCount++;
}
}
return clapCount;
}
}
👏🏻 4. 좋아요 가장 많이 받은 코드
아하 그냥 숫자에 "" 빈문자열 추가하면 문자열 되는거.....
class Solution {
public int solution(int order) {
int answer = 0;
String str = order+"";
for(int i=0; i<str.length(); i++){
char c = str.charAt(i);
if(c=='3'||c=='6'||c=='9') answer++;
}
return answer;
}
}
'코딩테스트 > JAVA테스트' 카테고리의 다른 글
[프로그래머스] (Java) 배열의 유사도 (4) | 2025.05.20 |
---|---|
[프로그래머스] (Java) 신고 결과 받기 문제 풀이 (2) | 2025.04.02 |
[프로그래머스] (Java) 가까운 수 문제풀이 (6) | 2025.03.31 |
[프로그래머스] (Java) 삼각형의 완성조건(1) 문제풀이 (4) | 2025.03.31 |
[프로그래머스] (Java) 중복된 문자 제거 문제풀이 (2) | 2025.03.31 |
📑 1. 문제설명

💡 2. 풀이과정
처음에는 3,6,9 게임을 잘못 이해했다.
3의 배수일 때 박수 치는 걸로 이해해서 해당 숫자를 3으로 나눈 나머지가 0일 때 cnt ++을 하는 실수를 했다.
하지만 오리지널 369게임은 숫자 3, 6, 9가 들어가면 박수를 치는 게임이다.
즉, 숫자 하나 하나가 3 또는 6 또는 9 값을 가지면 횟수를 카운트하고 마지막에 총 횟수를 리턴한다.
주어진 숫자를 문자열로 바꿔서 각 자릿수를 탐색해도 되지만
이 문제에서 어차피 숫자의 순서는 상관 없고
주어진 order 안에서 3, 6, 9가 총 몇개인지 갯수면 세면 되는 문제이기 때문에
주어진 숫자를 10으로 나눈 나머지가 3,6,9에 해당하는지만 확인하면 쉽게 풀 수 있다.
1. 주어진 숫자(order)를 10으로 나눈 나머지가 3, 6, 9이면 cnt 증가
2. order 을 order /10 으로 업데이트
3. 위 과정을 order이 0이 될때까지 반복
4. cnt 값을 리턴한다.
👨💻 3. 정답코드
내가 푼 코드
class Solution { public int solution(int order) { int cnt = 0; while (order > 0) { // 마지막 자릿수 int digit = order % 10; // 3, 6, 9일 때 박수 if (digit == 3 || digit == 6 || digit == 9) { cnt++; } // 마지막 자릿수 제거 order /= 10; } return cnt; } }
이건 숫자를 문자열로 변환해서 확인하는 코드인데 내 코드가 더 간결하고 좋은 것 같다.
public class Solution { public int solution(int order) { int clapCount = 0; // 숫자 order를 문자열로 변환하여 각 자리를 확인 String orderStr = String.valueOf(order); // 각 자리를 하나씩 확인 for (char digit : orderStr.toCharArray()) { // 3, 6, 9일 때 박수 if (digit == '3' || digit == '6' || digit == '9') { clapCount++; } } return clapCount; } }
👏🏻 4. 좋아요 가장 많이 받은 코드
아하 그냥 숫자에 "" 빈문자열 추가하면 문자열 되는거.....
class Solution { public int solution(int order) { int answer = 0; String str = order+""; for(int i=0; i<str.length(); i++){ char c = str.charAt(i); if(c=='3'||c=='6'||c=='9') answer++; } return answer; } }
'코딩테스트 > JAVA테스트' 카테고리의 다른 글
[프로그래머스] (Java) 배열의 유사도 (4) | 2025.05.20 |
---|---|
[프로그래머스] (Java) 신고 결과 받기 문제 풀이 (2) | 2025.04.02 |
[프로그래머스] (Java) 가까운 수 문제풀이 (6) | 2025.03.31 |
[프로그래머스] (Java) 삼각형의 완성조건(1) 문제풀이 (4) | 2025.03.31 |
[프로그래머스] (Java) 중복된 문자 제거 문제풀이 (2) | 2025.03.31 |