오늘 이거 알았네요/Java

[Java] Int를 Stream에 넣어 intArray로 바꾸다

로그관리자 2023. 4. 7. 18:04
728x90

프로그래머스 120891 - 369게임

 

문제 설명

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

 

 

 

나의 풀이

 

[계획]

1. int 배열 만들기

order로 들어온 숫자를 하나씩 잘라서 stream에 넣고 

아 근데 자르려면 string 타입 이어야 하네 ㅇㅋ 변환 

그다음 maptoInt 해서 Intstream으로 변환한 뒤 toArray 해서 배열로 만들어야지  

 

2. 3, 6, 9만큼 result 숫자 증가

위의 int 배열을 for문으로 돌려서 i번째 숫자가 3이거나 6이거나 9이면 result를 1씩 증가시키자 

 

 

 

그래서 풀이 코드

 

class Solution {
    public int solution(int order) {
        int answer = 0;
        int[] nums = Stream.of(String.valueOf(order).split("")).mapToInt(Integer::parseInt).toArray();
        
        for(int i = 0; i < nums.length; i++){
            if(nums[i] == 3 || nums[i] == 6 || nums[i] == 9) {
                answer ++;
            }
        }
        return answer;
    }
}

 

 

728x90