반응형
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 | 31 |
Tags
- 코딩테스트준비
- 딥러닝
- BFS
- 프로그래머스
- 항해99
- 구현
- 활성화 함수
- 혁펜하임
- 백준 2309
- 99항해
- 백준
- 해시
- 개발자 취업
- 스택
- BOJ
- dfs
- Python
- 알고리즘
- python 2309
- 개발자취업
- 코딩테스트 준비
- leetcode
- boj 2309
- easy 딥러닝
- 큐
- 99클럽
- 기능개발
- 파이썬
- 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 |