[프로그래머스(Java)] 7의 개수 / Stream, mapToObj, Collectors.joining()
Level. 0
문제
머쓱이는 행운의 숫자 7을 가장 좋아합니다.
정수 배열 array가 매개변수로 주어질 때, 7이 총 몇 개 있는지 return 하도록 solution 함수를 완성해보세요.
* 제한사항
- 1 ≤ array의 길이 ≤ 100
- 0 ≤ array의 원소 ≤ 100,000
풀이
import java.util.*;
class Solution {
public int solution(int[] array) {
int answer = 0;
String str = "";
for(int i=0; i<array.length; i++){
str += Integer.toString(array[i]);
}
answer = (int)str.chars().filter(c->c=='7').count();
return answer;
}
}
Java의 기본 문자 어레이를 chars()를 통해 스트림으로 변환하고, filter()를 통해 원하는 자료만 필터링한 후 count()를 사용해 개수를 구했다.
- chars() : chars()는 기본적으로 IntStream을 반환하여, 문자어레이를 스트림으로 만들 때 사용할 수 있다.
https://strong-2-min.tistory.com/255
[프로그래머스] 문자열 내 p와 y의 개수 / Stream , chars() , filter()
Level. 1 문제 풀이 class Solution { boolean solution(String s) { s = s.toLowerCase(); boolean answer = true; int count = 0; for(int i=0; i 'P'== e).count() == s.chars().filter( e -> 'Y'== e).count(); } } Java의 기본 문자 어레이를 chars()를
strong-2-min.tistory.com
다른 풀이
import java.util.*;
import java.util.stream.Collectors;
class Solution {
public int solution(int[] array) {
return (int) Arrays.stream(
Arrays.stream(array)
.mapToObj(String::valueOf)
.collect(Collectors.joining())
.split("")
)
.filter(s -> s.equals("7"))
.count();
}
}
- Arrays.stream() : 배열을 스트림으로 변환
- mapToObj(String::valueOf) : 일반적 Stream객체를 Stream<String>으로 변환
- collect(Collectors.joining()) : 모든 값을 1개의 String으로 이어 붙임
스트림 변환
- mapToInt → IntStream 반환
- mapToDouble → DoubleStream 반환
- mapToLong → LongStream 반환
- mapToObj→ Stream<T> 반환
https://school.programmers.co.kr/learn/courses/30/lessons/120912?language=java
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
https://wickies.tistory.com/14
[Java 요약 정리] 11. 스트림(Stream)
11. 스트림(Stream) 1) 스트림이란?- 다양한 데이터 소스를 통일된 방법으로 다루기 위한 것- 스트림이 제공하는 기능: 중간연산, 최종 연산- 과정: 스트림 생성 -> 중간연산 -> 최종연산 2) 스트림의
wickies.tistory.com