Sparta/What I Learned

22.12.12

코딩하는 또롱이 2022. 12. 14. 09:10
[코딩 테스트 - k의 개수]

1부터 13까지의 수에서, 1은 1, 10, 11, 12, 13 이렇게 총 6번 등장합니다. 정수 i, j, k가 매개변수로 주어질 때, i부터 j까지 k가 몇 번 등장하는지 return 하도록 solution 함수를 완성해주세요.

제한사항
  • 1 ≤ i < j ≤ 100,000
  • 0 ≤ k ≤ 9
입출력 예 설명
#1 - 본문과 동일합니다.
#2 - 10부터 50까지 5는 15, 25, 35, 45, 50 총 5번 등장합니다. 따라서 5를 return 합니다.
#3 - 3부터 10까지 2는 한 번도 등장하지 않으므로 0을 return 합니다.

[내가 짠 코드]

더보기

class Solution {
    public int solution(int i, int j, int k) {
        int answer = 0;
        for(int a = i; a<=j; a++){
           int z = a;
            while(z > 0){
                if(z % 10 == k){
                    answer++;
                }
                z /= 10;
            }
         }   
    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();
    }
}

 

[권상근님]

import java.util.*;
class Solution {
    public int solution(int i, int j, int k) {
        String str = "";
        for(int x=i; x<=j; x++) str += String.valueOf(x);
        return (int)Arrays.stream(str.split("")).filter(x -> x.equals(String.valueOf(k))).count();
    }
}

 

[정찬우님]

import java.util.*;
import java.io.*;

class Solution {
    public int solution(int i, int j, int k) {
        int answer = 0;

         for(int o=i; o<=j; o++){
            String[] number = String.valueOf(o).split("");

            for(int p = 0; p<number.length; p++){
                int tmp = Integer.parseInt(number[p]);

                if(k == tmp){
                    answer++;
                }

            }

        }

        return answer;
    }
}

 

'Sparta > What I Learned' 카테고리의 다른 글

22.12.14  (0) 2022.12.14
22.12.13  (0) 2022.12.14
22.12.11  (0) 2022.12.12
22.12.9  (0) 2022.12.12
22.12.8  (0) 2022.12.08