From acf68490f8651184372fee850bd8efef53a2836e Mon Sep 17 00:00:00 2001 From: rl544 <111494264+rl544@users.noreply.github.com> Date: Fri, 30 Dec 2022 03:50:13 +0900 Subject: [PATCH] =?UTF-8?q?updated=20at=202022.=2012.=2030.=20=EC=98=A4?= =?UTF-8?q?=EC=A0=84=203:50:13?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../크기가 작은 부분문자열/solution.java | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/programmers/크기가 작은 부분문자열/solution.java b/programmers/크기가 작은 부분문자열/solution.java index 5e9ed24..3371f61 100644 --- a/programmers/크기가 작은 부분문자열/solution.java +++ b/programmers/크기가 작은 부분문자열/solution.java @@ -1,16 +1,16 @@ // [문제 링크]: https://school.programmers.co.kr/learn/courses/30/lessons/147355 -import java.lang.StringBuilder; +import java.util.stream.LongStream; + class Solution { public int solution(String t, String p) { - StringBuilder sb = new StringBuilder(); - int answer = 0, len = p.length(); - long ip = Long.parseLong(p); - for(int a = 0; a < t.length()-len+1; a++){ - for(int b = a; b < a+len; b++) sb.append(t.charAt(b)); - if(Long.parseLong(sb.toString())<=ip) answer++; - sb.setLength(0); - } - return answer; + long targetNumber = Long.parseLong(p); + int targetNumberLength = p.length(); + + return (int) LongStream.range(0L, t.length() - targetNumberLength + 1L) + .mapToObj(i -> t.substring((int) i, (int) i + targetNumberLength)) + .mapToLong(Long::parseLong) + .filter(number -> number <= targetNumber) + .count(); } } \ No newline at end of file