Algorithm/Programmers
[프로그래머스] 369게임 - Java
뭐든 해보기
2023. 4. 7. 17:24
문제) 머쓱이는 친구들과 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를 출력합니다.
풀이)
1. Stream으로 해당 값을 문자열로 파싱하여 Integer로 매핑한다음 filter에 다중 조건문을 걸어서 count해준다.
2. int 형변환
import java.util.stream.Stream;
class Solution {
public int solution(int order) {
return (int) Stream.of(String.valueOf(order).split("")).mapToInt(Integer::parseInt).filter(value -> value == 3 || value == 6 || value == 9).count();
}
}
문제들을 풀면서 반복문이나 조건문 없이 Stream을 써보려고 노력하고 있다.
생각을 좀 넓히고 싶달까.. 이렇게도 풀이가 가능하단걸 느끼는 요즘
재밌당
단순히 값을 얻는 것에만 초점을 둔다면 여러 단계 없이 한줄로 써도 되지 않을까..
효율성에 대해서는 조금 더 공부를 해야할 것 같다.
stream의 기능에 대해선 더 파헤치고 적응해봐야할 것 같다.