
문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
인덱스가 0부터 시작하는 숫자로 구성된 길이 n의 문자열 num이 주어진다.
만약 모든 인덱스 i가 0 <= i < n 범위이고 숫자 i가 num에서 num[i]번 등장하면 true를 반환하고, 그렇지 않다면 false를 반환해라.
#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를 반환한다.
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;
}
}