https://www.acmicpc.net/problem/2309
2309번: 일곱 난쟁이
아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다.
www.acmicpc.net
보자마자 앗 이거 9개 중 7개 permutation하면 되자나~ 이러면서 신나게 제출했는데...
import itertools
arr = []
for _ in range(9):
arr.append(int(input()))
nPr = itertools.permutations(arr, 7)
for n in nPr:
if sum(n) <= 100:
print(sorted(list(n)))
break

ㅠㅜㅠ아니 너무 단호하자나ㅠㅜㅠㅜㅠ
분명 로직에는 문제가 없을텐데 하고 찾아보니 이런 출력을 list로 해버리면 안되는 거였네...?
역시 코드는 틀리지 않습니다 틀리는건 나에요...
import itertools
arr = []
for _ in range(9):
arr.append(int(input()))
nPr = itertools.permutations(arr, 7)
for n in nPr:
if sum(n) == 100:
arr = sorted(list(n))
break
print(*arr, sep="\n")
그래서 수정했더니 바로 통과되었다 *^^*
그리고 수정하면서 알게 된 하나의 cool한 표기법
print(*arr, sep="\n")
저 print문에 *을 넣으면 for _ in range(len(arr))과 같은 효과를 준다!!
그리고 무려 중간에 구분기호를 뭐로 할건지도 정할 수 있다!! ✧٩(ˊωˋ*)و✧
웹서핑 하다가 찾게된 코드인데 오호 permutation안써도 되네?! 이게 더 좋은가?! 하고 봤더니
무려 3중 for문이라 그냥 참고 링크만 남기겠다...
오늘의 교훈 : 쓰라고 만들어둔 라이브러리는 개꿀이고 내가 머리쓴거보다 나을테니 그냥 쓰자
'Algorithm > 백준 BOJ' 카테고리의 다른 글
| [백준] [Python] #2504 괄호의 값 (0) | 2021.09.25 |
|---|---|
| [백준] [Python] #1158 요세푸스 문제 (0) | 2021.09.24 |
| [백준] [Python] #11279 최대힙 (0) | 2021.09.23 |
| [백준] [Python] #10828 스택 (0) | 2021.09.23 |
| [백준] [Python] #3460 이진수 (0) | 2021.09.23 |
댓글