728x90
문제 설명
머쓱이는 행운의 숫자 7을 가장 좋아합니다. 정수 배열 array가 매개변수로 주어질 때, 7이 총 몇 개 있는지 return 하도록 solution 함수를 완성해보세요.
제한사항
- 1 ≤ array의 길이 ≤ 100
- 0 ≤ array의 원소 ≤ 100,000
입출력 예
array | result |
[7, 77, 17] | 4 |
[10, 29] | 0 |
입출력 예 설명
입출력 예 #1
- [7, 77, 17]에는 7이 4개 있으므로 4를 return 합니다.
입출력 예 #2
- [10, 29]에는 7이 없으므로 0을 return 합니다.
1
2
3
4
5
6
7
8
9
10
11
12
|
class Solution {
public int solution(int[] array) {
int answer = 0;
for(int n : array) {
while(n>0) {
if(n%10==7) answer++;
n/=10;
}
}
return answer;
}
}
|
cs |
배열을 반복하며 1자리씩 잘라 7일 경우 개수를 세었다. 1자리씩 잘라내는 방법은 예전 문제에서 많이 해봤다. 참조하시기 바란다. |
1
2
3
4
5
6
7
8
9
10
11
12
|
import java.util.Arrays;
import java.util.stream.Collectors;
class Solution {
public int solution(int[] array) {
return (int) Arrays.stream(Arrays.stream(array)
.mapToObj(v->v+"")
.collect(Collectors.joining())
.split("")
).filter(v->v.equals("7")).count();
}
}
|
cs |
int 배열을 Stream으로 만들어 String으로 변환하고 Arrays.stream(array).mapToObj(v->v+"").collect(Collectors.joining()) 문자열을 1글자씩 문자열 배열로 만들어 다시 스트림으로 만들고 Arrays.stream( Arrays.stream(array).mapToObj(v->v+"").collect(Collectors.joining()).split("") ) filter()를 이용하여 7인 값만를 구한 후 count()로 개수를 구하고 int로 형변환하였다. (int)Arrays.stream( Arrays.stream(array).mapToObj(v->v+"").collect(Collectors.joining()).split("") ) .filter(v->v.equals("7")) .count() |
728x90
'프로그래머스 코딩(자바) > Level 0' 카테고리의 다른 글
Programmers Level 0 - 문자열 계산하기 (0) | 2023.03.06 |
---|---|
Programmers Level 0 - 잘라서 배열로 저장하기 (0) | 2023.03.06 |
Programmers Level 0 - 컨트롤 제트 (0) | 2023.03.06 |
Programmers Level 0 - 영어가 싫어요 (0) | 2023.03.06 |
Programmers Level 0 - 소인수분해 (0) | 2023.03.06 |