코테
99클럽 코테 스터디 10일차 TIL + [LeetCode 2283번] Check if Number Has Equal ...
pipinstall
2025. 4. 9. 21:58
오늘의 학습 키워드
- 문자열 처리
- 배열을 활용한 빈도 계산
[LeetCode 2283. Check if Number Has Equal Digit Count and Digit Value 문제]

문제 요약
- 각 인덱스 i에 있는 숫자는 문자열 전체에서 숫자 i가 등장한 횟수여야 한다.
- 이 조건이 모든 인덱스에서 만족하면 true, 아니면 false를 리턴한다.
해결 방법
- 각 숫자가 몇 번 등장했는지를 세는 배열을 하나 만든다.
- 문자열 num을 순회하면서 등장 횟수를 카운트.
- 다시 한 번 num을 돌면서, i번째 문자의 숫자 값과 i가 등장한 횟수를 비교한다.
- 하나라도 불일치하면 false, 전부 맞으면 true.
핵심 포인트
문자열 안의 숫자를 단순한 문자로 보지 않고, 조건이 되는 기준값으로 해석해야 한다.
Java 코드 (문자열 + 배열 활용)
public boolean digitCount(String num) {
boolean flag = true;
String[] tmpArr = num.split("");
int cnt = 0;
int baseCnt = 0;
for (int i = 0; i < tmpArr.length; i++) {
baseCnt = Integer.parseInt(tmpArr[i]);
cnt = 0;
for(String j : tmpArr) {
if(Integer.parseInt(j) == i) {
cnt++;
}
}
if(baseCnt != cnt) {
flag = false;
return flag;
}
}
return flag;
}
오늘의 회고
What?
문자열을 숫자처럼 다뤄야 하는 문제였고, 인덱스와 값이 뒤바뀐 개념이라는것을 인지함
How?
각 인덱스에 있는 값 = 해당 인덱스 숫자가 등장한 횟수 라는 조건을 파악하고 해결.
Point?
- 배열을 활용