

문제를 살펴보면 N을 입력받은 뒤 N개의 진짜 약수가 주어진다
이 진짜 약수를 활용하여 배수를 찾으면 되는 문제이다
처음에는 문제를 제대로 안 읽고 예제를 보고 풀다보니 문제의 방향성을 잘못 잡았다
약수들 중에서 최대공약수를 찾아 약수 중 가장 큰 값과 곱하는 것이 정답인거로 생각하고 아래의 코드를 작성하였다
import math
def gcd_ls(num):
result = num[0]
for num in num[1:]:
result = math.gcd(result, num)
return result
N = int(input())
real_num = list(map(int, input().split()))
print(gcd_ls(real_num) * max(real_num))
이 코드를 통해 3번째 예제를 살펴보면 24가 아니라 12가 나오는 것을 확인할 수 있다
왜냐하면 예제의 첫번째 약수는 3이고, 4와 최대공약수를 구하면 1이 되기 때문이다
그래서 뭔가 이상하다 싶어 다시 문제를 천천히 살펴보니 진짜 약수라는 것은
본인과 1을 제외한 모든 약수를 적은 것이었다
그렇다는 것은 약수들끼리 적절한 수를 곱하면 원하는 답이 나온다는 뜻이기 때문에
가장 쉬운 방법으로 가장 작은 수와 가장 큰 수를 곱하면 원하는 원래의 수를 알 수 있다
N = int(input())
real_num = list(map(int, input().split()))
print(min(real_num) * max(real_num))
문제를 제대로 안 읽어서 먼 길을 돌아왔다...
문제가 짧다고 해서 그냥 빠르게 읽고 넘어갈 것이 아니라 항상 문제를 자세히 읽어보는 습관을 가져야겠다

'Baekjoon' 카테고리의 다른 글
| [Baekjoon]백준 26069 붙임성 좋은 총총이(실버 4) - Python (1) | 2024.12.09 |
|---|---|
| [Baekjoon]백준 25192 인사성 밝은 곰곰이(실버 4) - Python (0) | 2024.12.08 |
| [Baekjoon]백준 1010 다리놓기(실버 5) - Python (0) | 2024.12.06 |
| [Baekjoon]백준 11050 이항 계수 1(브론즈 1) - Python (0) | 2024.12.05 |
| [Baekjoon]백준 10872 팩토리얼(브론즈 3) - Python (0) | 2024.12.04 |