반응형
- 문제
https://school.programmers.co.kr/learn/courses/30/lessons/12924
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
- 풀이
function solution(n) {
let count = 0; // 몇 갠지 세는 count (나중에 return 해 줄 정답을 담을 변수)
for (let j = 1; j <= n; j++) { // 1에서 n까지 점점 커지는 j
let num = 0;
for (let i = j; i <= n; i++) { // j부터 n까지 점점 커지는 i
num += i;
if (num == n) count++; // 차례대로 더하다가 num이 n과 같아지면 count 올리기
}
}
return count;
}
2단계 도전해봤다.
2단계는 처음이라서 넘 쫄아가지고 정답률 가장 높은 거부터 풀기로 했다.
정확성 테스트는 통관데
?
그래서 다시 했다. 주석 적다가 깨달았다.
function solution(n) {
let count = 0; // 몇 갠지 세는 count (나중에 return 해 줄 정답을 담을 변수)
for (let j = 1; j < n; j++) { // 1에서 n-1까지 점점 커지는 j (n은 무조건 count 되어야하니까 그냥 뺌)
let num = 0;
for (let i = j; i < n; i++) { // j부터 n-1까지 점점 커지는 i
num += i;
if (num == n) {
count++; // 차례대로 더하다가 num이 n과 같아지면 count 올리기
break; // num과 n이 같아지면 바로 반복문 끝내기
}
else if (num > n) break; // num이 n보다 커지면 바로 반복문 끝내기
}
}
return count + 1; // n = n 경우는 무조건이니까 count에 1을 더한 걸 return
}
조건 충족하면 break로 반복문 빠져나게해서 불필요한 계산을 안 하게 만들었다.
반응형
'코딩 테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 - Python] Lv.2 뉴스 클러스터링 (0) | 2023.03.08 |
---|---|
[프로그래머스 - JavaScript] Lv.2 튜플 (0) | 2023.02.11 |
[프로그래머스 - Python/JavaScript] Lv.1 비밀지도 (0) | 2023.02.07 |
[프로그래머스 - Javascript] Lv.1 모의고사 (0) | 2023.02.07 |
[프로그래머스 - Python/JavaScript] Lv.1 폰켓몬 (0) | 2023.02.07 |