[파이썬] 백준 9613번 「GCD의 합」

2023. 12. 9. 13:33· 코딩테스트 - 백준
목차
  1. 문제
  2. 문제 해설
  3. 풀이전략
  4. 코드
  5. 결과
  6. 고찰
728x90
반응형

문제

백준 9613번/실버4

 

 

 

문제 해설

GCD(Greatest Common Divisor)이란 최대공약수를 의미한다. 테스트 케이스를 입력받고 테스트 케이스만큼의 각 경우의 답을 구하는 문제인데, 

각 경우는 각 수들의 모든 쌍들의 최대 공약수를 더해서 테스트 케이스마다 출력을 해줘야하는 문제이다.

 

 

 

풀이전략

보통 우리가 초중학교때 최대공약수를 구하는 방법에는 소인수 분해를 하여 구하는 것이었으나, 코딩테스트 쪽에서는 유클리드 호제법을 많이 사용한다고 한다.

원리같은 것은 잘 모르겠고, 두 줄 요약하자면

  1.  a에서 b를 나눴을 때 나머지가 0이면 종료 -> 몫이 최대 공약수 , 그렇지 않다면 2번으로 이동
  2.  1번에서 나온 나머지를 c라고 하였을 때, b에서 c를 나누어줌. 나머지가 0이면 종료->이때의 몫이 최대공약수, 아니면 2번 반복

 

파이썬에서는 math 모듈에서 gcd(a, b) 함수가 구현되어 있으므로 우리는 이것을 이용하면 된다.

모든 쌍을 전부 돌아야 하므로 i = 1일때 j는 2, 3, 4를 돌아야하고, i는 2일때 3, 4를 돌고, i = 3일때 j 는 4를 돌면 모든 경우의 수를 다 구할 수 있다.

 

 

코드

import sys;
import math;

n = int(sys.stdin.readline().rstrip()); #n 입력 (테스트 케이스 입력)

for _ in range(n): #테스트 케이스 반복
    lst = list(map(int, sys.stdin.readline().split())); #요소 개수, 요소들 입력
    del lst[0]; #요소 개수 삭제(파이썬에서는 필요 없음)
    
    s = 0; #GCD 의 합 저장할 변수
    for i in range(0, len(lst)-1): #맨 앞부터 맨끝-1 까지
        for j in range(i+1, len(lst)): #현재 위치 다음부터 끝까지
            s+=math.gcd(lst[i], lst[j]); #gcd를 구하고 s에 넣기
            
    print(s); #출력

 

결과

 

 

고찰

모듈 최고...!

728x90
반응형
저작자표시 비영리 (새창열림)

'코딩테스트 - 백준' 카테고리의 다른 글

[파이썬] 백준 2563번 「색종이」  (4) 2023.12.11
[파이썬] 백준 1193번 「분수찾기」  (1) 2023.12.10
[파이썬] 백준 11656번 「접미사 배열」  (1) 2023.12.08
[파이썬] 백준 1074번 「Z」  (4) 2023.12.07
[파이썬] 백준 14425번 「문자열 집합」  (6) 2023.12.06
  1. 문제
  2. 문제 해설
  3. 풀이전략
  4. 코드
  5. 결과
  6. 고찰
'코딩테스트 - 백준' 카테고리의 다른 글
  • [파이썬] 백준 2563번 「색종이」
  • [파이썬] 백준 1193번 「분수찾기」
  • [파이썬] 백준 11656번 「접미사 배열」
  • [파이썬] 백준 1074번 「Z」
성밍쟁
성밍쟁
성밍쟁 공붕방
성밍쟁
너드인의 밤
성밍쟁
전체
오늘
어제
  • 분류 전체보기 (182)
    • 일상 (1)
    • 스펙업 (7)
      • 학회 (0)
      • 멋쟁이사자처럼 (2)
      • 2024 winter-study (5)
    • 코딩테스트 - 백준 (9)
    • 보안 스터디 (56)
      • 시스템 해킹 (10)
      • 리버스 엔지니어링 (0)
      • 웹 해킹 (38)
      • 암호학 (8)
    • bandit (15)
    • 웹 개발 (11)
    • 머신러닝 (0)
    • 데이터베이스 (9)
    • KnockOn (72)
    • DevOps (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 드림핵
  • /bin
  • 1074
  • 11656
  • 1193
  • 2563
  • 3Des
  • 9613
  • AES
  • Alias

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
성밍쟁
[파이썬] 백준 9613번 「GCD의 합」
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.