프로그래머스 : 369게임

Digeut·2023년 2월 23일
0

프로그래머스

목록 보기
2/164

❔문제설명

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

❌틀린 코드

class Solution {
    public int solution(int order) {
        int answer = 0;
        String orderStr = Integer.toString(order);
        
        for (int i = 0 ; i < orderStr.length() ; i++){
            if(orderArr(i) == 3 || orderArr(i) == 6 || orderArr(i) == 9){
            answer ++;
            }
        }
        return answer;
    }
}

order이 int타입이니까, 일단 문자열의 형태로 바꾼 다음에
그 문자열의 값을 하나하나 비교하면서 3 6 9 중에 있으면 answer에 1을 추가하자는
생각으로 코드를 짰는데, 뭐가 중간에 빈다...배열로 변환을 해야하나?
orderStr 찾을수 없다는 오류가 뜨는데 중간에 어떤 과정이 추가가 필요하다...

🙄오류

/Solution.java:7: error: cannot find symbol
            if(orderArr(i) == 3 || orderArr(i) == 6 || orderArr(i) == 9){
               ^
  symbol:   method orderArr(int)
  location: class Solution
/Solution.java:7: error: cannot find symbol
            if(orderArr(i) == 3 || orderArr(i) == 6 || orderArr(i) == 9){
                                   ^
  symbol:   method orderArr(int)
  location: class Solution
/Solution.java:7: error: cannot find symbol
            if(orderArr(i) == 3 || orderArr(i) == 6 || orderArr(i) == 9){
                                                       ^
  symbol:   method orderArr(int)
  location: class Solution

❌틀린코드2

class Solution {
    public int solution(int order) {
        int answer = 0;
        String orderStr = Integer.toString(order);
        String[] orderArr = new String[orderStr.length()];
            
        for (int i = 0 ; i < orderArr.length ; i++){
            if(orderArr[i] == "3" || orderArr[i] == "6" || orderArr[i] == "9"){
            answer ++;
            }
        }
        return answer;
    }
}

오류는 안뜨는데, 값이 전부 0이 나온다...

💡코드풀이

import java.util.Arrays;

class Solution {
    public int solution(int order) {
        int answer = 0;
        String orderStr = Integer.toString(order);
        String[] orderArr = orderStr.split("");
        
        for(int i = 0; i < orderArr.length ; i++){
            if(orderArr[i].equals("3") || orderArr[i].equals("6") || 
              orderArr[i].equals("9")){
                answer++;
            }
        }
        
        return answer;
    }
}

order을 String타입으로 바꾼다음 split을 사용해 문자배열로 만들어준다음 for반복문을 통해서 하나하나 값이 equals 를 이용해 같다면 answer++해주는 방식으로 풀이했다. ==을 통한게 자꾸 인식을 못하는것 같았다. // 04.05 풀이

profile
개발자가 될 거야!

0개의 댓글