[algorithm] 백준 1037 - 약수
안녕하세요. 심심한 코딩쟁이입니다.
오늘은 백준 1037번 문제 - 약수 의 풀이를 살펴보도록 하겠습니다.
풀이에 사용한 언어는 Python3 입니다.
문제 해석과 풀이 다 함께 살펴보시죠.

백준 BAEKJOON 1037
반응형
문제 해석
어떠한 숫자의 약수가 주어지면 약수들을 가지고 그 숫자를 유추해내는 문제입니다.
약수의 개수는 50개보다 작거나 같은 개수가 주어지는데 약수의 개수가 몇개이든 우리가 살펴봐야할 약수는
딱 두개입니다.
힌트 : 약수를 크기순은로 정렬시킨 후 잘 살펴봅시다.
풀이
# 1037 약수
N = int(input())
num_list = list(map(int, input().split()))
print(max(num_list) * min(num_list))
풀이 해석 및 팁
풀이를 살펴보면 약수들의 리스트를 만들어서 해당 리스트에서 최댓값과 최솟값을 곱한 값을 출력합니다.
이게 바로 문제가 원하는 정답인데요.
20이라는 숫자를 예로 들어서 설명을 해보자면
20의 약수는 [1 - 2 - 4 - 5 - 10 - 20] 총 6개입니다.
크기순으로 정렬한 상태에서 맨앞과 맨뒤를 짝으로 지어주면 곱했을 때 해당 숫자가 나오는 것을 볼 수 있습니다.
문제에서는 1과 해당 숫자는 제공하지 않기 때문에 약수 리스트에서 최댓값과 최솟값만 찾아내면 되겠습니다.
여기까지 백준 1037번 약수 문제 풀이였습니다.
이번 문제의 정답률은 55% 정도입니다.
약수의 성질을 살짝만 생각해보면 쉽게 해결이 가능한 문제였습니다.
궁금한 점이 있으시다면 댓글로 남겨주세요.
감사합니다.
반응형
'programming > algorithm' 카테고리의 다른 글
[algorithm] 백준 26069 - 붙임성 좋은 총총이 (0) | 2023.04.27 |
---|---|
[algorithm] 백준 25192 - 인사성 밝은 곰곰이 (0) | 2023.04.26 |
[algorithm] 백준 1010 - 다리 놓기 (0) | 2023.04.24 |
[algorithm] 백준 11050 - 이항 계수 1 (0) | 2023.04.23 |
[algorithm] 백준 10872 - 팩토리얼 (0) | 2023.04.22 |