// x과 y가 곱해져서 n는 경우의 수
// y는 20 부터시작해서 점차 줄어가고
// x는 1부터 시작해서 점차 늘어간다
라는 전제를 애초부터 깔고갔었다
function solution(n) {
let a = 0;
for(let x = 1; x <= n; x++) {
if (x * Math.floor(n/x) === n) {
a += 1
}
}
return a
}
for문 두번 돌리면 편하겠다 생각했는데 안됨 ㅠ
예시로 적혀있는 순서쌍의 조합을 보니
(1, 20), (2, 10), (4, 5), (5, 4), (10, 2), (20, 1)
이러한 형식이길래
어 1에서 2로넘어갈때 보니까 20을 2로 나누면 10
20을 5로나누면 4
20을 4로 나누면 5 이런생각이 딱 들어서 n을 x로 나눠야겠다 생각했고 정수로 떨어지지않는부분도 존재하여 Math.floor를 사용하였다.
진짜 얻어걸린느낌... ?
원래 이거 못풀겠어서 넘겼었던문제인데 풀어서 재밌다.
'codingTest' 카테고리의 다른 글
| 백준 파이썬 입력받기 (1) | 2023.05.11 |
|---|---|
| 프로그래머스 가위바위보 (0) | 2023.02.15 |
| 프로그래머스 개미군단 (0) | 2023.02.15 |
| 프로그래머스 스쿨 0 단계 숨어있는 숫자의 덧셈 1 답 해설 (0) | 2023.02.15 |
| 프로그래머스 스쿨 코딩테스트 0단계 2차원으로 만들기 답 해석 (0) | 2023.02.15 |