🧩 Algorithm/[BOJ] Bronze

BOJ 2309번 : 일곱 λ‚œμŸμ΄ (Python/Bronze 1)

devCloud 2023. 1. 8. 22:25
728x90
 

2309번: 일곱 λ‚œμŸμ΄

아홉 개의 쀄에 걸쳐 λ‚œμŸμ΄λ“€μ˜ ν‚€κ°€ μ£Όμ–΄μ§„λ‹€. μ£Όμ–΄μ§€λŠ” ν‚€λŠ” 100을 λ„˜μ§€ μ•ŠλŠ” μžμ—°μˆ˜μ΄λ©°, 아홉 λ‚œμŸμ΄μ˜ ν‚€λŠ” λͺ¨λ‘ λ‹€λ₯΄λ©°, κ°€λŠ₯ν•œ 정닡이 μ—¬λŸ¬ 가지인 κ²½μš°μ—λŠ” μ•„λ¬΄κ±°λ‚˜ 좜λ ₯ν•œλ‹€.

www.acmicpc.net

문제

μ™•λΉ„λ₯Ό ν”Όν•΄ 일곱 λ‚œμŸμ΄λ“€κ³Ό ν•¨κ»˜ ν‰ν™”λ‘­κ²Œ μƒν™œν•˜κ³  있던 λ°±μ„€κ³΅μ£Όμ—κ²Œ μœ„κΈ°κ°€ μ°Ύμ•„μ™”λ‹€. 일과λ₯Ό 마치고 λŒμ•„μ˜¨ λ‚œμŸμ΄κ°€ 일곱 λͺ…이 μ•„λ‹Œ 아홉 λͺ…μ΄μ—ˆλ˜ 것이닀.

아홉 λͺ…μ˜ λ‚œμŸμ΄λŠ” λͺ¨λ‘ μžμ‹ μ΄ "λ°±μ„€ 곡주와 일곱 λ‚œμŸμ΄"의 주인곡이라고 μ£Όμž₯ν–ˆλ‹€. λ›°μ–΄λ‚œ μˆ˜ν•™μ  직관λ ₯을 κ°€μ§€κ³  있던 λ°±μ„€κ³΅μ£ΌλŠ”, λ‹€ν–‰μŠ€λŸ½κ²Œλ„ 일곱 λ‚œμŸμ΄μ˜ ν‚€μ˜ 합이 100이 됨을 κΈ°μ–΅ν•΄ λƒˆλ‹€.

아홉 λ‚œμŸμ΄μ˜ ν‚€κ°€ μ£Όμ–΄μ‘Œμ„ λ•Œ, 백섀곡주λ₯Ό 도와 일곱 λ‚œμŸμ΄λ₯Ό μ°ΎλŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.

 

μž…λ ₯

아홉 개의 쀄에 걸쳐 λ‚œμŸμ΄λ“€μ˜ ν‚€κ°€ μ£Όμ–΄μ§„λ‹€. μ£Όμ–΄μ§€λŠ” ν‚€λŠ” 100을 λ„˜μ§€ μ•ŠλŠ” μžμ—°μˆ˜μ΄λ©°, 아홉 λ‚œμŸμ΄μ˜ ν‚€λŠ” λͺ¨λ‘ λ‹€λ₯΄λ©°, κ°€λŠ₯ν•œ 정닡이 μ—¬λŸ¬ 가지인 κ²½μš°μ—λŠ” μ•„λ¬΄κ±°λ‚˜ 좜λ ₯ν•œλ‹€.

 

좜λ ₯

일곱 λ‚œμŸμ΄μ˜ ν‚€λ₯Ό μ˜€λ¦„μ°¨μˆœμœΌλ‘œ 좜λ ₯ν•œλ‹€. 일곱 λ‚œμŸμ΄λ₯Ό 찾을 수 μ—†λŠ” κ²½μš°λŠ” μ—†λ‹€.


예제 μž…λ ₯

20
7
23
19
10
15
25
8
13

예제 좜λ ₯

7
8
10
13
19
20
23

μ„€λͺ…

일곱 λ‚œμŸμ΄μ˜ ν‚€λŠ” ν•©ν•΄μ„œ 100이닀. λ”°λΌμ„œ 9λͺ…μ˜ μž…λ ₯ κ°’ μ€‘μ—μ„œ 합이 100인 쑰합을 찾으면 λœλ‹€.

 

풀이

● combinations(μ‘°ν•©) 이용

Solution

from itertools import combinations

l = []
for _ in range(9):
    #μ—”ν„°λ‘œ μž…λ ₯받을 땐 append, 슀페이슀둜 μž…λ ₯받을 땐 map
    l.append(int(input()))
l.sort()

for i in combinations(l, 7):
    if sum(i) == 100:
        l = i
        break
    
for i in l:
    print(i)
728x90