본문 바로가기

Algorithm/Programers - Java

[프로그래머스(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으로 이어 붙임

 

 

스트림 변환

  1. mapToInt  IntStream 반환
  2. mapToDouble  DoubleStream 반환
  3. mapToLong  LongStream 반환
  4. 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