1 minute read

369게임

문제 설명

머쓱이는 친구들과 369게임을 하고 있습니다. 369게임은 1부터 숫자를 하나씩 대며 3, 6, 9가 들어가는 숫자는 숫자 대신 3, 6, 9의 개수만큼 박수를 치는 게임입니다. 머쓱이가 말해야하는 숫자 order가 매개변수로 주어질 때, 머쓱이가 쳐야할 박수 횟수를 return 하도록 solution 함수를 완성해보세요.


제한사항

  • 1 ≤ order ≤ 1,000,000

입출력 예

order result
3 1
29423 2

입출력 예 설명

입출력 예 #1

  • 3은 3이 1개 있으므로 1을 출력합니다.

입출력 예 #2

  • 29423은 3이 1개, 9가 1개 있으므로 2를 출력합니다.

나의 풀이 코드

import java.util.*;

class Solution {
    public int solution(int order) {
        int answer = 0;
        String str = Integer.toString(order);
        String[] strArr = str.split(""); 
        ArrayList<String> list = new ArrayList<>(Arrays.asList(strArr));
        
        int cnt=0;
        for(int i=0; i<list.size(); i++){
            if(list.get(i).equals("3") || list.get(i).equals("6") || list.get(i).equals("9")){
                cnt++;
            }
        }
        answer = cnt;
        return answer;
    }
}

리스트로 푸는 연습을 위해서 정수를 문자열로 바꾸고 문자열 배열로 바꾸고 리스트로 바꾼 다음에 풀었다.
이후 각 요소마다 equals로 3,6,9에 해당하는지 판별후 cnt++하는 식이다.

배운점

class Solution {
    public int solution(int order) {
        int answer = 0;
        int count = 0;
        while(order != 0)
        {
            if(order % 10 == 3 || order % 10 == 6 || order % 10 == 9)
            {
                count++;
            }
             order = order/10;
        }
        answer = count;
        return answer;
    }
}

다른 사람이 푼 코드이다.
반복문에서 10으로 나눈 나머지로 각 자리수를 판별하는 식이다.

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;
    }
}

또 다른 사람이 푼 코드인데 정수를 문자열로 바꾸는 새로운 방법을 알았다.
String str = order+"";
위 코드와 같이 정수에 +”“를 하면 된다.

Leave a comment