369게임

문제

 


나의 생각

 

숫자를 문자 배열로 변환후 각 인덱스 값이 3,6,9 값과 같다면 answer 값 증가하는 방식으로 접근.

 


나의 답안

 

public static int solution(int order) {
    int answer = 0;

    String a = String.valueOf(order);
    char[] b = new char[a.length()];

    for(int i = 0 ; i < a.length(); i++){
        b[i] = a.charAt(i);
        if (b[i] == '3' || b[i] == '6' || b[i] == '9'){
            answer++;
        }
    }

    return answer;
}

다른 답안

 

여러개의 조건문에 대한 부분만 풀었어도 stream으로 처리가 되었을 텐데, 그게 안되어서 중간에 포기했다. 다시 한번더 희표님의 코드를 보고 다시 어떻게 쓰는지 파악을 하고 있다.

 

import java.util.Arrays;

class Solution {
    public int solution(int order) {
        return (int) Arrays.stream(String.valueOf(order).split("")).map(Integer::parseInt).filter(i -> i == 3 || i == 6 || i == 9).count();
    }
}

'Programmers 문제풀이 > Lv.0' 카테고리의 다른 글

문자열 정렬하기 (2)  (0) 2023.02.28
숫자 찾기  (0) 2023.02.28
약수 구하기  (0) 2023.02.28
피자 나눠 먹기 (2)  (0) 2023.02.28
외계행성의 나이  (0) 2023.02.28