오늘의 코딩테스트 한줄 - 순서쌍의 개수

Edwin·2023년 1월 31일
0
post-thumbnail

순서쌍의 개수

순서쌍이란 두 개의 숫자를 순서를 정하여 짝지어 나타낸 쌍으로 (a, b)로 표기합니다. 자연수 n이 매개변수로 주어질 때 두 숫자의 곱이 n인 자연수 순서쌍의 개수를 return하도록 solution 함수를 완성해주세요.

  • n이 20 이므로 곱이 20인 순서쌍은 (1, 20), (2, 10), (4, 5), (5, 4), (10, 2), (20, 1) 이므로 6을 return합니다.

1) 구글링 문제풀이

(1, 20), (2, 10), (4, 5), (5, 4), (10, 2), (20, 1) 나는 이것에만 집중하여 어떻게 하면 n의 을 a*b로 만들수 있는지만을 구하다보니 정답에 도달하지 못했다. 물론 for(let i = 1 ; i <= n ; i ++) {}을 통해야 한다는 것에는 도달했지만 말이다.

function solution(n) {
    const result = []
    for(let i = 1 ; i <= n ; i ++) {
        if(n%i === 0) {
          result.push(i);
        }
    }
    console.log(result.length);
    return result.length};

solution(20)
  • 20/1 = 20 / 나머지 0
  • 20/2 = 10 / 나머지 0
  • 20/3 = 6 / 나머지 2
  • 20/4 = 5 / 나머지 0
  • 20/5 = 4 / 나머지 0
  • 20/6 = 3 / 나머지 2
  • 20/7 = 2 / 나머지 6
  • 20/8 = 2 / 나머지 4
  • 20/9 = 2 / 나머지 2...
  • 20/10 = 2 / 나머지 0...
  • 20/20 = 1 / 나머지 0

이 결과 나머지의 값이 0인 것만 result에 담기게 되며, 해당 배열의 길이를 구하면 6이 나오는 것이다. 문제는 풀 수 있어보이지만, 짝지어 나타낸 쌍으로 (a, b)로 표기를 배열에 담고, 그 배열의 길이를 구해야 한다는 점에서 위의 코드에는 문제가 있어 보이지만, 코린이의 실력에서 위의 문제를 푸는 것은 조금 많이 어려운 일이다. 다른사람의 풀의를 보아도 이런 내용에 의문을 표한 사람이 없기 때문이다.

profile
신학전공자의 개발자 도전기!!

0개의 댓글