Javadocs

[Programmers] k의 개수 (Java) 본문

SelfStudy/Programmers(코딩테스트)

[Programmers] k의 개수 (Java)

Javatist 2023. 4. 20. 13:23

https://school.programmers.co.kr/learn/courses/30/lessons/120887

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

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

  • 1 ≤ i < j ≤ 100,000
  • 0 ≤ k ≤ 9

[ 입출력 예 ]

ijkresult
11316
105055
31020

[ 풀이 ]
주어진 숫자를 int형에서 string 타입으로 변경하여 문자열 비교를 한다.

public class K_Num {
	public static int solution(int i, int j, int k) {
        int answer = 0;
        
        for (int x = i; x <= j; x++) {
        	// 숫자를 문자로 변환하는 형 변환.
        	String num = Integer.toString(x);
        	// System.out.println(num);
        	// System.out.println("a :" + num.length());
        	for (int y = 0; y < num.length(); y++) {
            	// num.length는 숫자의 자릿수. 즉, num.length가 2라면 십의 자리를 의미
        		if (Integer.toString(k).equals(num.substring(y,y+1))) {
        			// 각 자리를 비교하여 포함여부를 비교
        			answer++;
        		}
        	}
        }
        
        return answer;
    }
	public static void main(String[] args) {
		int i = 1;
		int j = 13;
		int k = 1;
		
		System.out.println(solution(i, j, k));
	}
}

Integer.toString() - 숫자를 문자로 변환하는 형 변환 방법

 

Comments