티스토리 뷰
문제
풀이
for이 세 개 이상 겹쳐 나온다면 합리적 의심을 해 보아야 한다.
시간 효율이 미친듯이 떨어지기 때문이다.
역시 나만 모르는 인싸들의 도구가 있었으니....
import itertools
lists = [1, 2, 3]
permut = list(itertools.permutations(lists, 2))
comb = list(itertools.combinations(lists, 2))
print('순열: {} \n조합: {}'.format(permut, comb))
permutations는 순열, combinations는 조합을 쉽게 출력해낸다(끝에 s 주의!).
순열은 (1, 2)와 (2, 1)를 다른 경우의 수로 취급한다.
조합은 (1, 2)와 (2, 1)를 하나로 취급한다.
문제로 돌아가자.
-
최대공약수를 구하는 함수를 정의.
-
입력받은 테스트 케이스 수로 for문 만듬.
-
순서대로 테스트 케이스들을 입력 받는데, 사실 위의 방법을 이용하면 첫번째로 받는 테스트 케이스 수는 필요가 없다. 또한, 최대공약수 구하는 함수는 x로 y를 나누어야 하기 때문에 입력받는 수들을 내림차순 정렬해야한다. 정리: 내림차순 정렬 후, 마지막 요소를 제거한다.
-
combinations를 써서 result에 최대공약수들을 더하고 프린트한 후엔 result를 0으로 만든다.
-
3부터 반복
from itertools import combinations
def gcd(x, y): # 최대공약수 계산 함수
while y:
x, y = y, (x % y)
return x
n = int(input())
lists = []
result = 0
for _ in range(n):
lists = list(map(int, input().split())) # 조합 만들 숫자들 받기
lists = lists[::-1] # 내림차순 정렬
del lists[len(lists) - 1] # 마지막 요소 필요 없으니 제거
ncr = combinations(lists, 2) # 조합 생성
for i in ncr:
result += gcd(i[0], i[1]) # 조합을 통해 최대공약수들 result에 더하기
print(result) # 프린트 해 두고
result = 0 # 초기화
반응형
'Basic_Studies > 알고리즘 문제풀이' 카테고리의 다른 글
[파이썬] 백준 - 11576: Base Conversion (0) | 2021.02.08 |
---|---|
[파이썬] 백준 - 1373: 2진수 8진수 (0) | 2021.02.05 |
[파이썬] 백준 - 2609: 최대공약수와 최소공배수 (0) | 2021.02.03 |
[파이썬] 백준 - 10989: 수 정렬하기 3 (0) | 2021.02.02 |
[파이썬] 백준 - 11721: 열 개씩 끊어 출력하기 (0) | 2021.02.02 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- nextjs 스크롤
- 파이썬 크롤링
- nuxt 공식문서
- 리액트 라우터
- react router
- 움직이는 글래스모피즘
- 리액트
- Til
- 카페음료테스트
- 파이썬 정렬
- 화이팅
- 자바스크립트
- 파이썬 flask
- nuxt 공식문서 한글
- css marquee
- next.js 리다이렉트
- 리액트 컴포넌트
- NextJS
- bs4 크롤링
- 리액트 스크롤
- css 글래스모피즘
- 리액트 파라미터 넘기기
- dvd 효과
- 글래스모피즘 구현
- 글래스모피즘 애니메이션 구현
- 10989 파이썬
- 백준 10989 파이썬
- vscode venv
- nextjs 파라미터 넘기기
- getserversideprops redirect
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함