샘성의 iOS 개발 일지

[코딩테스트 입문] 순서쌍의 개수 본문

Algorithm/프로그래머스

[코딩테스트 입문] 순서쌍의 개수

SamusesApple 2023. 5. 9. 14:14
728x90

문제 설명:

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

 

 

 

 

내 풀이: 

func solution(_ n:Int) -> Int {
    // 결과를 카운팅 할 변수
    var result = 0
    // 바로 나누어떨어지면 result + 1
    for i in 1...n {
       if n % i == 0 {
           result += 1
       }
    }
    
    return result
}

 

 

 

회고:

  처음엔 2개의 수로 곱해야한다는 것에 사로잡혀 for loop문 2개를 중첩해 풀었다가, 50%는 시간초과로 오답 처리를 받아서 50% 정답률을 받았다. 생각해보니 바로 나누어떨어지는 것이 즉 2개의 수로 곱한 값이 된다는 것을 깨닫게 되었다.

 

  고차함수 중 filter를 사용하여 간단하게 풀 수 있을 것 같아 추가적으로 풀어보았다.

1~n까지의 정수 중, n과 나누어떨어지는 수를 filter해서 배열에 담고, 해당 배열의 요소 갯수를 count하는 방식이다.

 

문제에 써있는 글자나 숫자에 얽메이지 않고 의도를 파악하는 연습이 더욱 필요하다 느꼈다.

 

728x90