TIL10-01 js 코딩테스트 순서쌍의 개수

김태혁·2023년 1월 21일
0

TIL

목록 보기
30/205
  • 문제 설명
    순서쌍이란 두 개의 숫자를 순서를 정하여 짝지어 나타낸 쌍으로 (a, b)로 표기합니다. 자연수 n이 매개변수로 주어질 때 두 숫자의 곱이 n인 자연수 순서쌍의 개수를 return하도록 solution 함수를 완성해주세요.
  • 풀이 과정
  1. i * j = n 이라는 방정식을 생각했다.
    그래서 중첩 반복문을 n만큼 돌려주어서 x
    y의 곱이 n일때 count++하는걸 생각했다.
function solution(n) {
    let count = 0;
    for (let i = 0; i <= n; i++) {
      for (let j = 0; i <= n; j++) {
       	if ( i * j == n) {
            count++
        }
      }
    }
    return count;
}

위의 테스트 코드를 실행했을 땐 문제 없었지만 n이 커질 수록 시간이 오래걸린 다는 문제가 생겨 시간초과로 테스트를 통과하지 못했다.

  1. 중첩반복문이 시간이 걸려 문제가 된다면 반복문을 한번만 사용하기 위한 식이 필요했다. 그래서 n을 i를 나누고 그 나머지가 0일때라면 몫과 i가 한쌍이 되기 때문에 코드를 아래와 같이 변경했더니, 시간 문제도 해결 되면서 테스트를 통과했다.
function solution(n) {
    let count = 0;
    for (let i = 0; i <= n; i++) {
        if ( n % i == 0) {
            count++
        }
    }
    return count;
}
profile
도전을 즐기는 자

0개의 댓글