728x90
<코딩 테스트>
1부터 13까지의 수에서, 1은 1, 10, 11, 12, 13 이렇게 총 6번 등장합니다. 정수 i, j, k가 매개변수로 주어질 때, i부터 j까지 k가 몇 번 등장하는지 return 하도록 solution 함수를 완성해주세요.
입출력 예)
10부터 50까지 5는 15, 25, 35, 45, 50 총 5번 등장합니다. 따라서 5를 return 합니다.
<나의 풀이 과정>
우선, int형인 주어진 숫자들을 String.valueOf를 통해서 String 배열에 담았습니다.
그 후, split 메서드를 이용해서 문자열 하나씩 배열에 담은 후, 같은 것이 contains 되어있으면
answer를 증가시키는 코드를 짜보았습니다.
<나의 풀이 코드>
class Solution {
public int solution(int i, int j, int k) {
int answer = 0;
int sum = 0;
String sSum = "";
for (int l = j; l >= i; l--) {
sSum += String.valueOf(l);
}
String[] strArr = sSum.split("");
for (int l = 0; l < strArr.length; l++) {
if (strArr[l].contains(String.valueOf(k))) {
answer++;
}
}
return answer;
}
}
<다른 사람 풀이 1>
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;
}
}
<다른사람 풀이 2>
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();
}
}
728x90
'주니어 기초 코딩공부 > JAVA_programmers_코딩테스트' 카테고리의 다른 글
한 번만 등장한 문자_programmers_lev00 (0) | 2022.12.12 |
---|---|
가까운 수_programmers_lev00 (0) | 2022.12.11 |
2차원으로 만들기_programmers_lev002 (0) | 2022.12.11 |
A로 B 만들기_programmers_lev00 (0) | 2022.12.11 |
모스 부호 (1)_programmers_lev00 (1) | 2022.12.09 |