- 내 풀이
class Solution {
public int solution(int i, int j, int k) {
int answer = 0;
// i~j 사이의 숫자와 k 의 값을 비교하기 위한 변수
String check = "";
for (int l = i; l <= j; l++) {
// l의 값이 int 형이기 때문에 문자열로 변경하기 위함(String.valueOf도 가능)
check = ""+l;
// check.length()를 하게 되면 변수의 개수가 나옴 예) 1 -> 1개 , 22 -> 2개 , 100 -> 3개
for (int m = 0; m < check.length(); m++) {
/*
k는 int형이기 때문에 비교하기 위해
if(k == Integer.parseInt(String.valueOf(check.charAt(m)) 으로 하거나
둘다 문자열로 변환하여 비교한다.
if(String.valueOf(k).equals(String.valueOf(check.charAt(m))
*/
if(k == Integer.parseInt(String.valueOf(check.charAt(m)))){
answer++;
}
}
}
return answer;
}
}
- 다른 사람 풀이
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();
}
}
class Solution {
public int solution(int i, int j, int k) {
int answer = 0;
for (int num = i; num <= j; num++){
int tmp = num;
while (tmp != 0){
if (tmp % 10 == k)
answer++;
tmp /= 10;
}
}
return answer;
}
}
처음에는 나머지를 이용해서 구해보려고 했으나 내 스스로가 정리가 안돼서 풀이를 변경하였다
'프로그래머스 > [프로그래머스 - JAVA] Lv.0' 카테고리의 다른 글
[프로그래머스 - JAVA] 한 번만 등장한 문자 (0) | 2023.03.12 |
---|---|
[프로그래머스 - JAVA] 진료순서 정하기 (0) | 2023.03.12 |
[프로그래머스 - JAVA] 가까운 수 (0) | 2023.03.12 |
[프로그래머스 - JAVA] 팩토리얼 (0) | 2023.03.12 |
[프로그래머스 - JAVA] 2차원으로 만들기 (0) | 2023.03.11 |
댓글