(백준/Java) 1152번 : 단어의 개수 (stream().filter() 사용기)

2021. 6. 14. 14:57·CodingTest

난이도: Bronze 2

프로그래밍 언어: Java

문제명: 단어의 개수

푼일자: 2021년 6월

 

주소: https://www.acmicpc.net/problem/1152

 

문제풀기

문제를 접하고 for 문을 쓰기는 식상한데.. 좋은 방법이 없을까?

하고 찾아보니 filter() 메소드를 사용하는것이 좋아 보였습니다.

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;

public class question_1152 { // 단어의 개수
    public static void main(String[] args) throws IOException {
        var br = new BufferedReader(new InputStreamReader(System.in));
        var words = Arrays.asList(br.readLine().split(" ")).stream().filter(a -> !a.isBlank());
        System.out.print(words.count());
        br.close();
    }
}

 

이후 Intellij가 알려준 방법대로 Arrays 에서 List 가 아닌 stream 으로 바로 바꿔주도록 리팩토링!

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;

public class question_1152 { // 단어의 개수
    public static void main(String[] args) throws IOException {
        var br = new BufferedReader(new InputStreamReader(System.in));
        var words = Arrays.stream(br.readLine().split(" ")).filter(a -> !a.isBlank());
        System.out.print(words.count());
        br.close();
    }
}

 

 

아래보다 위에 진행한 코드가 더 빠르게  실행된 것을 알 수 있었습니다.

반응형
저작자표시 비영리 (새창열림)
'CodingTest' 카테고리의 다른 글
  • (백준/Java) 2577번 : 숫자의 개수 (IntStream.range().forEach 사용기)
  • (백준/Java) 1546번 : 평균 (빠른 속도에 감탄하다)
  • (백준/Java) 1181번 : 단어 정렬 (그리고 의문)
  • (백준/Kotlin) 10818번 : 최소, 최대 (시간 복잡도/선형 시간, 메소드 성능 비교)
Kua
Kua
정보 공유, 개인 정리 공간 입니다.
  • Kua
    Kua's Miscellaneous
    Kua
    • 분류 전체보기 (185)
      • 대문 (2)
      • Tips (25)
        • Chrome (2)
        • Windows (4)
        • IDE (3)
        • 기타 (16)
      • CodingTest (44)
      • Language (20)
        • PHP (5)
        • C# (7)
        • Java (1)
        • Kotlin (7)
      • Framework & Runtime (16)
        • SpringBoot (12)
        • Node.js (2)
        • Vue.js (1)
        • Gradle (1)
      • DevOps (13)
        • Linux (1)
        • Docker (4)
        • Kubernetes (2)
        • Apache Kafka (1)
        • AWS (1)
      • 일상다반사 (53)
        • 도서 (1)
        • 개발 (8)
        • 후기 - IT (7)
        • 후기 - 일상 (13)
        • 차가리 (4)
        • 방송통신대학교 (4)
        • 음식 (2)
      • Games (12)
        • Minecraft (7)
        • VR (2)
        • 그외 (3)
  • 최근 글

  • 인기 글

  • 태그

    minecraft
    bronze1
    Spring Boot
    코딩테스트
    백준
    bronze2
    java
    error
    c#
    github
    Silver5
    spring
    후기
    codingtest
    갤럭시
    Plugin
    Windows
    알고리즘
    Algorithm
    Kotlin
  • 전체
    오늘
    어제
  • hELLO· Designed By정상우.v4.10.0
Kua
(백준/Java) 1152번 : 단어의 개수 (stream().filter() 사용기)
상단으로

티스토리툴바