N으로 들어온 숫자까지 K가 몇개 있는지 확인하는 알고리즘이다.
예) N = 25, K =2 일 경우
2,12,20,21,22,23,24,25를 카운트 하면 된다.
그러나, 여기서 22는 1번으로 카운트가 아닌 2번으로 카운트되어야 하는 것이 핵심이다.
문제 풀이
import java.util.*;
class Solution {
public int solution(int N, int K) {
int answer = 0;
String num = "";
char num2 = (char)(K+'0');
List<String> numList = new ArrayList<String>();
for(int i =1; i<=N; i++){
numList.add(Integer.toString(i));
}
for(int j = 0; j < numList.size(); j++){
num = numList.get(j);
answer += cntChar(num,num2);
}
return answer;
}
public static int cntChar(String str, char ch) {
return str.length() - str.replace(String.valueOf(ch), "").length();
}
}
숫자를 문자열로 변환하여 문자로 비교하는 알고리즘을 구현했다.
문자열의 길이 - 동일한 문자를 빈문자열로 대체한 문자열의 길이 = 문자열이 비교한 문자를 갖고 있는 개수
즉, 22의 문자길이 2가 동일한 문자 2를 빈문자열로 대체하게 되면 길이가 0이 된다. 2-0=2
2를 갖는 22의 문자개수는 2개가 된다. ***cntChar()메소드를 참고바람
'알고리즘' 카테고리의 다른 글
| [알고리즘]프로그래머스-추억점수(2차원 배열과 해시테이블의 합작)_java (2) | 2023.05.29 |
|---|---|
| [알고리즘]프로그래머스 - 최빈값 구하기(HashMap을 곁들인) (0) | 2023.05.29 |
| [알고리즘]프로그래머스-한 번만 등장한 문자(해시테이블을 곁들인,List의 정렬 방법) (0) | 2023.05.29 |
| [알고리즘]int형 배열의 내림차순과 오름차순(feat.Integer형 배열으로 변환) (2) | 2023.05.29 |
| [알고리즘]입력받은 숫자를 거꾸로 출력하기(java) (0) | 2023.05.27 |