반응형
Recent Posts
Notice
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 프로그래머스
- 딥러닝
- 99클럽
- 백준
- 99항해
- 개발자 취업
- BOJ
- 스택
- 활성화 함수
- 큐
- 파이썬
- 백준 2309
- boj 2309
- 기능개발
- 혁펜하임
- python 2309
- 알고리즘
- BFS
- dfs
- 해시
- Python
- 항해99
- 코딩테스트 준비
- easy 딥러닝
- leetcode
- 코딩테스트준비
- 개발자취업
- 구현
- til
- softeer
Archives
- Today
- Total
동까의 코딩
[Python] 백준 2309 : 일곱 난쟁이 본문
반응형
https://www.acmicpc.net/problem/2309
2309번: 일곱 난쟁이
아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다.
www.acmicpc.net
브루드 포스 기본문제인 일곱 난쟁이를 풀어보았다.
이 문제를 풀어보면서 브루드포스에 대한 내용도 인지하였고, dfs를 사용하여 풀이했다.
short_men = [int(input()) for _ in range(9)]
search_short_men = []
def dfs(depth, start):
if depth == 7:
if sum(search_short_men) == 100:
for j in sorted(search_short_men):
print(j)
exit()
else:
return
for i in range(start, len(short_men)):
search_short_men.append(short_men[i])
dfs(depth+1, i + 1)
search_short_men.pop()
dfs(0, 0)
다른 풀이로는 combinations를 이용하여 풀이하였다.
import itertools
short_men = [int(input()) for _ in range(9)]
search_short_men = []
for i in itertools.combinations(short_men, 7):
if sum(i) == 100:
for j in sorted(i):
print(j)
break
반응형
'문제 풀이 > 백준' 카테고리의 다른 글
[Python] 백준 8958 : OX퀴즈 (0) | 2024.04.09 |
---|---|
[Python] 백준 2309 : 일곱 난쟁이 (0) | 2024.04.09 |
[Python] 백준 14503 : 로봇 청소기 (2) | 2024.04.04 |
[Python] 백준 2161 : 카드1 (0) | 2024.04.03 |
[Python] 백준 17608 : 막대기 (0) | 2024.04.03 |