250x250
반응형
Notice
Recent Posts
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
- 토익시험준비
- 영단어
- 브루트포스
- 영단어암기
- sqld
- 토익 영단어
- TOEIC문법
- 토익문법노트
- 토익문법정리
- 주어
- BFS
- 데이터베이스
- 영어문장
- 자바스크립트
- NCS수리자료해석
- 토익단어
- 공기업공부
- 다이나믹프로그래밍
- 알고리즘
- 수리능력
- dfs
- 너비우선탐색
- 자료해석
- BOJ
- TOEIC
- 매일매일NCS
- TOEIC Vocabulary
- 영문법
- 파이썬
- 문제해결능력
Archives
- Today
- Total
하나씩 알아가기
[BOJ_2309] 일곱 난쟁이 본문
728x90
반응형
틀린 부분이 있을 경우, 지적해 주시면 감사하겠습니다.
아홉 개의 input이 들어오는데 이 중 두 개의 input은 fake고, 일곱 개의 input의 합이 100인 것들만 오름차순으로 출력하면 되는 간단한 문제입니다.
브루트 포스(Brute Force)
조합 가능한 모든 문자열을 하나씩 대입해 보는 방식으로 문제를 해결하는 방법
브루트 포스라 이름은 거창한데 원시적인 방법으로 문제를 풀어야 할 경우 사용하는 것 같습니다. 그런데 모든 문제에서 사용되지 않나요?.. 사실 이런 용어가 잘 와닿지는 않네요ㅠ 조금 더 내공이 쌓이면 어떤 경우에 브루트 포스 방법이 사용되는 지 파악이 되는 날이 오면 좋겠네요
문제로 돌아와서 9개의 데이터 중 2개의 데이터만 뽑아서 100이 되면 출력하는 식으로 문제를 풀겠습니다.
itertools라는 라이브러리가 있는데 파이썬에서 반복되는 데이터를 처리하는 기능을 포함하고 있습니다.
이것을 사용하면 조합이나 순열을 구하는 클래스를 import하여 사용할 수 있습니다.
두 난쟁이를 뽑는 경우는 순서를 고려하지 않으므로 combinations를 import 하였습니다.
일곱 난쟁이의 키를 합한 값이 100이면 출력할 result에서 해당 난쟁이들을 remove로 삭제 해주고
정렬해서 출력하면 됩니다.
from itertools import combinations
people = []
for _ in range(9):
people.append(int(input()))
combList = list(combinations(people, 2))
for x, y in combList:
result = sum(people) - x - y
if result == 100:
people.remove(x)
people.remove(y)
people.sort()
break
for person in people:
print(person)
728x90
반응형
'알고리즘' 카테고리의 다른 글
[BOJ_3085] 사탕 게임 (0) | 2021.01.24 |
---|---|
[BOJ_1476] 날짜 계산 (0) | 2021.01.24 |
[BOJ_15990] 1, 2, 3 더하기 5 (0) | 2021.01.23 |
[BOJ_9095] 1, 2, 3 더하기 (0) | 2021.01.22 |
[BOJ_11727] 2xn 타일링 2 (0) | 2021.01.22 |