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