[LeetCode] Check if Number Has Equal Digit Count and Digit Value

아르당·2026년 8월 25일

LeetCode

목록 보기
486/579
post-thumbnail

문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음

Problem

인덱스가 0부터 시작하는 숫자로 구성된 길이 n의 문자열 num이 주어진다.
만약 모든 인덱스 i가 0 <= i < n 범위이고 숫자 i가 num에서 num[i]번 등장하면 true를 반환하고, 그렇지 않다면 false를 반환해라.

Example

#1
Input: num = "1210"
Output: true
Explanation:
num[0] = '1'이다. 숫자 0은 num에서 1번 등장한다.
num[1] = '2'이다. 숫자 1은 num에서 2번 등장한다.
num[2] = '1'이다. 숫자 2는 num에서 1번 등장한다.
num[3] = '0'이다. 숫자 3은 num에서 0번 등장한다.
"1210"에서 모든 인덱스가 조건을 만족해서, true를 반환한다.

#2
Input: num = "030"
Output: false
Explanation:
num[0] = '0', 숫자 0은 0번 등장해야 하지만, 사실 num에서 2번 등장한다.
num[1] = '3', 숫자 1은 3번 등장해야 하지만, 사실 num에서 0번 등장한다.
num[2] = '0', 숫자 2는 num에서 0번 등장한다.
인덱스 0과 1 둘 다 조건을 만족하지 못해서 false를 반환한다.

Constraints

  • n == num.length
  • 1 <= n <= 10
  • num은 숫자로 구성된다.

Solved

class Solution {
    public boolean digitCount(String num) {
        int[] arr = new int[10];

        for(char c : num.toCharArray()){
            arr[c - '0']++;
        }

        for(int i = 0; i < num.length(); i++){
            if(arr[i] != (num.charAt(i) - '0')){
                return false;
            }
        }

        return true;
    }
}
profile
내 마음대로 코드 작성하는 세상

0개의 댓글