https://school.programmers.co.kr/learn/courses/30/lessons/147355
처음으로 풀어보는 Lv.1 문제인 만큼
초집중하겠다는 마음가짐으로 풀이에 임했다..
최종코드
function solution(t, p) {
let answer = 0;
for(let i=0; i<=[...t].length-p.length; i++) {
let res = [...t].slice(i, i+p.length)
if(Number(res.join('')) <= Number(p)) {
answer++
}
}
return answer
}
확실히 문제를 많이 푸니 전보다 수월하게 알고리즘을 짤 수 있었다.
사실 전체적인 알고리즘 짜는 것보다 자료형, 인덱싱 설정하는게 더 어려운 것 같다.
지금까지는 마구잡이로 디버깅 하면서 맞춰가긴 했는데
앞으로는 자료형, 인덱싱 하나하나 정밀하고 꼼꼼하게 보면서 코드를 짜야겠다.
다른 사람의 풀이
function solution(t, p) {
let count = 0;
for(let i=0; i<=t.length-p.length; i++) {
let value = t.slice(i, i+p.length);
if(+p >= +value) count++;
}
return count;
}
단항 연산자 + 는 그냥 Boolean 타입을 숫자형으로 바꿔주는 구나~ 라고만 알고 있었는데
그냥 모든 타입을 숫자로 바꿔줄 수 있었다. (변환 불가능하면 NaN 반환)
Number()나 parseInt() 말고도
+ 하나로 쉽게 숫자형 타입 변환을 할 수 있다는 걸 배웠다.
'Coding Test' 카테고리의 다른 글
[JS] 프로그래머스 / <PCCP 기출문제> / 1번 - 동영상 재생기 (0) | 2024.12.16 |
---|---|
[JS] 프로그래머스 / 푸드 파이트 대회 (0) | 2024.12.14 |
[JS] 프로그래머스 / 주사위 게임 3 (0) | 2024.12.10 |
[JS] 프로그래머스 / 배열 만들기 2 (0) | 2024.12.09 |