⭐ intro : 문제를 생각해나간 방식
해시테이블을 활용한 문제이다. 다만... 내가 사용한 방식이 해시테이블을 사용한 방식인지는 잘 모르겠다. 해당 문자를 전체 순회하면서 각 '인덱스'의 숫자가 몇번씩 존재하는지 묻는 문제이다. 예를들어 1210의 경우
- num[0] 은 총 1번들어있다 : true
- num[1]는 총 2번 들어있다 : true
- num[2]는 총 1번 들어있다 : true
- num[3]은 총 0번 들어있다 : true
이렇게 인덱스 번호에 해당하는 횟수랑 똑같으면 true를 반환하고, 하나라도 맞지 않는것이 있다면 false를 반환하게끔 하면 되는 문제이다.
⭐ 풀이과정
이중 for문을 사용하면서 비교적 쉽게 풀었다. 먼저 for in문을 돌면서 각 자리의 인덱스 번호를 순회하였고, 그 인덱스 번호가 그 인덱스 번호의 value값과 동일하면 동일한 갯수만큼 value 변수에 값을 증가시키도록 만들었다. 이렇게 만들어진 결과값을 result[] 배열을 만들어준 후에 넣어주었다. 즉 해당 결과값은 num이 1210일 경우 [1, 2, 1, 0]값이 쌓이게 되고, 이 result[i]값과 num[i]값을 하나씩 비교해서 다른점이 있다면 booleanValue값을 증가시키도록 만들고, 최종 booleanValue 값에 하나도 있으면, 즉 1이상의 값이 들어와있다면 false라는 뜻이므로 모두 같으면 true, 아니면 false를 뱉도록 만들었다.
⭐ 제출답안
var digitCount = function(num) {
const result = [];
let booleanValue = 0;
for (let i in num) {
let value = 0;
for (let j of num) {
if (i === j) {
value++;
}
}
result.push(value);
result[i] === Number(num[i]) ? null : booleanValue++;
}
return booleanValue > 0 ? false : true;
};
⭐ 공부했던 개념들
- 해시테이블
'Algorithm' 카테고리의 다른 글
99클럽 코테 스터디 10일차 TIL - 평행선(백준 2358 / JavaScript) (0) | 2025.04.14 |
---|---|
99클럽 코테 스터디 9일차 TIL - Design HashMap (리트코드 706 / JavaScript) (0) | 2025.04.11 |
99클럽 코테 스터디 7일차 TIL : 좋은 단어 (백준 3986 / JavaScript) (0) | 2025.04.09 |
99클럽 코테 스터디 6일차 TIL - Climbing Stairs (리트코드 70 / JavaScript) (0) | 2025.04.08 |
99클럽 코테 스터디 5일차 TIL - Implement Stack using Queues (리트코드 225 / JavaScript) (0) | 2025.04.07 |