[백준] 1037번 : 약수 (🥈실버 5) (Python)

2023. 1. 22. 04:17·◼ PS Note/백준
반응형

문제 바로 가기

 

1037번: 약수

첫째 줄에 N의 진짜 약수의 개수가 주어진다. 이 개수는 50보다 작거나 같은 자연수이다. 둘째 줄에는 N의 진짜 약수가 주어진다. 1,000,000보다 작거나 같고, 2보다 크거나 같은 자연수이고, 중복되

www.acmicpc.net

 


풀이 1

  • 사용 언어 : Python
  • 풀이한 날짜 : 2022-03-07
n = int(input())
lst = list(map(int, input().split()))

if n == 1:
    print(lst[0] * lst[0])
else:
    print(max(lst) * min(lst))

 

풀이 로직

  • 진짜 약수는 1과 N이 될 수 없으므로, N은 1과 자신만을 약수로 갖는 소수가 될 수 없다.
  • 진짜 약수의 개수가 1개면, 그 값을 제곱하면 N이다.
  • 진짜 약수의 개수가 2개 이상이면, 가장 큰 값과 가장 작은 값을 곱하면 N이 된다.
  • 이 두 가지 경우가 아닌 예외는 없다.

 

문제 접근 과정 및 느낀점

  • 문제를 보자마자 답을 구할 수 있는 핵심 로직이 바로 생각나 빠르게 해결했다.
  • 다만 생각한 로직을 벗어나는 예외 케이스가 존재할 가능성이 있다고 생각하여 문제 조건을 꼼꼼히 확인하며 풀이를 점검했다.
  • 앞으로도 이렇게 문제를 풀고 잘못된 점은 없는지 신중하게 점검하는 습관을 지니도록 하자.



풀이 2 (모범 답안 참고)

답안 출처

  • 사용 언어 : Python
  • 풀이한 날짜 : 2022-03-07

 

n = int(input())
lst = list(map(int, input().split()))

print(max(lst) * min(lst))

 

풀이 로직

  • 진짜 약수의 가장 큰 값과 가장 작은 값을 곱하여 출력한다.

 

느낀점

  • 음.. 모범 답안을 보니 굳이 약수의 개수에 따라 경우를 나눌 필요가 없었다.
  • 앞으로 경우를 나눠 각각 다른 로직을 적용해 문제를 해결하고자 할 때, 동일한 풀이로 해결할 수 있는 여러 경우가 발생하진 않았는지 잘 확인해보자. (안 보이면 할 수 없고)

 

반응형

'◼ PS Note > 백준' 카테고리의 다른 글

[백준] 1063번 : 킹 (🥈실버 4) (Python)  (0) 2023.01.22
[백준] 1929번 : 소수 구하기 (🥈실버 3)  (0) 2023.01.22
[백준] 1292번 : 쉽게 푸는 문제 (🥈실버 5) (Python)  (0) 2023.01.22
[백준] 1026번 : 보물 (🥈실버 4) (Python)  (0) 2023.01.22
[백준] 1652번 : 누울 자리를 찾아라 (🥉브론즈 1) (JavaScript)  (0) 2023.01.21
'◼ PS Note/백준' 카테고리의 다른 글
  • [백준] 1063번 : 킹 (🥈실버 4) (Python)
  • [백준] 1929번 : 소수 구하기 (🥈실버 3)
  • [백준] 1292번 : 쉽게 푸는 문제 (🥈실버 5) (Python)
  • [백준] 1026번 : 보물 (🥈실버 4) (Python)
SangYoonLee (SYL)
SangYoonLee (SYL)
Slow, But Steady Wins The Race 😎
    반응형
  • SangYoonLee (SYL)
    ◆ Slow, But Steady ◆
    SangYoonLee (SYL)
  • 전체
    오늘
    어제
    • ◻ 전체 글 수 : (132)
      • ✪ 취미, 경험 회고 및 일상 (26)
        • [취미] Room Escape (2)
        • [회고] IT 관련 경험 회고 (18)
        • [일상] 일상 생각 (4)
        • [일상] 독후감 (1)
      • ◼ FrontEnd (30)
        • Web & HTML, CSS (9)
        • JavaScript (4)
        • TypeScript (1)
        • ReactJS (16)
      • ◼ CS (3)
        • 자료구조 & 알고리즘 (1)
        • 컴퓨터 구조 (1)
        • 운영체제 (1)
      • ◼ PS Note (40)
        • 백준 (38)
        • 프로그래머스 (2)
      • ◼ IT Etc. (33)
        • (Until 2021) (21)
        • Python (6)
        • C | C# | C++ (1)
        • Git (1)
        • Unity (4)
        • Game Dev. (0)
  • 블로그 메뉴

    • 홈
    • 💻 GitHub
    • 🟢 Velog
    • 🧩 온라인 방탈출 출시 작품 모음
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    프로그래머스
    알고리즘
    파이썬
    회고
    프로젝트
    unity
    유니티
    CodeSoom
    후기
    백준
    더라비린스
    pygame
    wecode
    JavaScript
    Python
    개인 프로젝트
    위코드
    코딩 일기
    방탈출고사
    C++
    Cpp
    1929
    Component
    소수 구하기
    리엑트
    React
    주간 회고
    관심사의 분리
    미궁 게임
    코드숨
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
SangYoonLee (SYL)
[백준] 1037번 : 약수 (🥈실버 5) (Python)
상단으로

티스토리툴바