문제
순서쌍이란 두 개의 숫자를 순서를 정하여 짝지어 나타낸 쌍으로 (a, b)로 표기합니다. 자연수 n이 매개변수로 주어질 때 두 숫자의 곱이 n인 자연수 순서쌍의 개수를 return하도록 solution 함수를 완성해주세요.
풀이
class Solution {
fun solution(n: Int): Int {
var answer: Int = 0
// var answer: MutableList<Int> = mutableListOf<Int>()
for (i in 1..n) {
if(n%i == 0) answer++
}
return answer
}
}
입출력 예 설명을 읽다가 실수 했다!
문제에서 원하는 답은 '순서쌍의 개수' 인데 처음에 실수로 순서쌍 list 를 return 하려고 했었다.. ㅎㅎ
생각보다 문제 해결 방법은 간단하다. 주어진 예시를 참고하여 다시 설명해보자면, 주어진 값 n이 20일 때 '두 숫자의 곱이 n인 자연수 순서쌍' 을 구해야 한다.
→ 반대로 생각하면, 20을 나누어 떨어지게 하는 수를 구하는 것과 동일!
→ 공약수를 찾으면 된다.
만약 주어진 숫자 n 나누기 i 의 나머지가 0이라면, 위에서 구하고자한 '나누어 떨어지게 하는 수' 가 되는 것이니까 + 1
설명이 오히려 더 복잡하게 보일지 모르겠지만....! 헷갈리는건 계속 보다보면 익숙해지는 법
공약수 유형의 문제는 이런방식으로 풀어가면 되는 걸로 ~_~
'Study > 프로그래머스' 카테고리의 다른 글
[Kotlin/프로그래머스] 배열 자르기 (0) | 2023.08.28 |
---|---|
[Kotlin/중복된 숫자 개수] (0) | 2023.07.17 |
[Kotlin/프로그래머스] 편지 (0) | 2023.06.20 |
[Kotlin/프로그래머스] 삼각형의 완성조건 (1) (0) | 2023.06.20 |
[Kotlin/프로그래머스] n 번째 원소까지 (0) | 2023.06.20 |