파이썬 백준 1037번
브론즈1
https://www.acmicpc.net/problem/1037
문제 보기
분류: 정수론 및 조합론, 수학, 정수론
문제 풀기
문제에서 모든 약수를 제시해 주기 때문에 이를 리스트로 저장하고 오름차순으로 정리하여 맨 왼쪽 그리고 맨 오른쪽 수를 곱하면 되겠다고 생각하였다. 그런데 내가 이 부분에서 간과한 것이 있었으니 그것은 하나의 수가 제시되었을 때. 예제 입력에도 하나의 수가 있었지만 이 부분은 깜빡 잊고 코드를 작성해 나갔다. 여튼 맨 왼쪽은 factors_ls[0] 이고 맨 오른쪽은 factors_ls[-1] 이라 하나의 숫자가 제시되어도 적용되는 코드이긴 했다.
그리고 또 한 가지, 제출을 하려고 클릭을 하는 순간 굳이 리스트를 오름차순 정리할 필요 없이 max, min 으로 그 값을 찾아도 되었을 텐데 하는 생각이 지나갔다.
(리스트를 오름차순 돌리면 시간 복잡도 부분에서 많이 손해일 것이다.)
코드 보기
import sys
inputdata = sys.stdin.readline
def fnFindFromFactors(factors_ls):
factors_ls.sort()
# print(factors_ls) # test print
result = factors_ls[0] * factors_ls[-1]
return result
if __name__ == "__main__":
N = int(inputdata().strip())
factors_ls = list(map(int, inputdata().split()))
# print(factors_ls) # test print
result = fnFindFromFactors(factors_ls)
print(result)
'공부하기 > 백준' 카테고리의 다른 글
[Python] 백준 풀기 2477 - 참외밭 (0) | 2022.10.22 |
---|---|
[Python] 백준 풀기 1149 - RGB거리 (0) | 2022.10.21 |
[Python] 백준 풀기 3009 - 네 번째 점 (0) | 2022.10.20 |
[Python] 백준 풀기 5086 - 배수와 약수 (0) | 2022.10.19 |
[Python] 백준 풀기 1712 - 손익분기점 (2) | 2022.10.18 |