https://school.programmers.co.kr/learn/courses/30/lessons/120887
정수 i~j 까지를 구해야하기 때문에 반복문을 사용해 i~j까지
String 변수명 st에 Integer.toString()을 이용해 형변환 후 넣어주자.
이러면 st에는 값들이 계속 덮어 씌워지는 셈이니 이 반복문 안에서 문제를 해결하자.
반복문안에 0부터시작해서 st의 길이만큼 반복하는 반복문을 작성한다.
이 st 안에 정수 k 가 존재하면 된다.
st는 String, k는 int이므로 둘을 비교하기 위해선 k를 아까 사용했던 Integer.toString()을 활용해 형변환 후 .equals를 이용해
st에 있는 문자들이 k와 일치하는지 알아보자
그런데 문제 조건에 의해 만약 k가 1인경우에 st가 11인경우는 1이 총 2번 들어간것이기 때문에 한번 더 등장한다고 봐야한다.
그래서 st를 substring(시작할index,종료할 index)을 이용해 2개로 쪼개보자.
substring을 사용하자 2자리 수 들이 십의자리와 일의자리로 나뉘어서 출력된다.
이제 이 나뉘어진 글자들과 k가 같다면 그 수 만큼 answer를 증가연산자를 이용해 증가시킨 후 리턴한다.
class Solution {
public int solution(int i, int j, int k) {
int answer = 0;
for(int a=i; a<=j; a++){
String st = Integer.toString(a);
for(int b =0; b<st.length(); b++){
if(Integer.toString(k).equals(st.substring(b,b+1))){
answer ++;
}
}
}
return answer;
}
}
'프로그래머스 문제풀어보기' 카테고리의 다른 글
[Lv.0] 진료 순서 정하기 (0) | 2023.03.13 |
---|---|
[Lv.0] 2차원으로 만들기 (0) | 2023.03.10 |
[Lv.0] A로 B 만들기 (0) | 2023.03.06 |
[Lv.0] A로 B 만들기 (0) | 2023.03.06 |
[Lv.0] 모스부호(1) (0) | 2023.03.03 |
댓글