나의 풀이
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
class Solution {
public int solution(int i, int j, int k) {
char digit= (char)(k +'0');
int cnt=0;
String str = IntStream.rangeClosed(i, j).mapToObj(a -> a + "").collect(Collectors.joining());
for(int m=0; m<str.length(); m++){
if(str.charAt(m)==digit){
cnt+=1;
}
}
return cnt;
}
}
▶ i부터 j까지 사용하기 위해 rangeClosed()를 사용하였다.
▶ mapToObj(a -> a + "") 을 이용해서 IntStream을 Stream<String>으로 바꾸었다.
▶a는 stream의 요소를 의미한다.
▶ String클래스의 chatAt() 메서드의 반환타입은 char이다.
▶ collect(), forEach() 은 최종연산임에 주의한다.
다른 사람의 풀이
class Solution {
public int solution(int i, int j, int k) {
String str = "";
for(int a = i; a <= j; a++) {
str += a+"";
}
return str.length() - str.replace(k+"", "").length();
}
}
▶ 특정 구간의 숫자를 문자열로 만든다.
▶ k +"" : int타입의 k를 String타입의 k로 만든다.
'프로그래머스(자바) > LV.0(자바)' 카테고리의 다른 글
팩토리얼 → ★축약 연산자를 이용한 팩토리얼 (0) | 2022.11.25 |
---|---|
2차원으로 만들기→이중for문★, %연산자★ 2차원배열 (0) | 2022.11.25 |
A로 B만들기 → steam을 이용한 문자열정렬★ (0) | 2022.11.25 |
중복된 문자제거 → Set자료형, 메서드 참조, distinct()★★ (0) | 2022.11.25 |
모스부호(1) - HashMap get(key), put(key, value), indexOf(),substring() (0) | 2022.11.25 |