조건
1. 손코딩 연습
2. 기존 방식으로 풀어보고
3. 람다로 풀어볼 것
문제
풀이 과정
- toCharArray() 메서드가 생각나지 않아서 중간 과정을 채우지 못했다
정답
1. 기존 풀이 방식
class Solution {
public int solution(int i, int j, int k) {
int answer = 0;
for(int start=i;start<=j;start++) { //i부터 j까지
char[] num = Integer.toString(start).toCharArray(); //문자로 변환해서 num에 저장
for(int a=0;a<num.length;a++) { //num의 길이만큼 반복
if(num[a] == k+'0') { //num[a]가 k+'0'(문자이기 때문에 변환필요)와 같다면
answer++; //answer에 1증가
}
}
}
return answer;
}
}
2. 람다 풀이 방식
class Num2{
public int solution(int i, int j, int k) {
int answer = 0;
long an = IntStream.rangeClosed(i, j) //범위 지정 i부터 j까지
.mapToObj(Integer::toString) //정수를 문자열로 변환
.flatMapToInt(CharSequence::chars) //문자열을 문자로 변환
.filter(a->a==k+'0') //변환한 값들 중 k+'0'과 일치하는 것 필터
.count(); //갯수 세기(리턴타입 long)
answer = (int)an; //answer에 형변환 하여 저장
return answer;
}
}
'JAVA > 연습노트' 카테고리의 다른 글
[프로그래머스-자바] 등차수열의 특정한 항만 더하기 (0) | 2024.04.25 |
---|---|
[프로그래머스-자바] 조건 문자열 (2) | 2024.04.21 |
[프로그래머스-자바] 홀짝에 따라 다른 값 반환하기 (2) | 2024.04.20 |
[프로그래머스-자바] 치킨 쿠폰 (0) | 2024.04.19 |
[프로그래머스-자바] 로그인 성공? (0) | 2024.04.18 |