일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 백준
- Galera Cluster
- Heap
- 파이썬
- mongoDB
- MySQL
- design pattern
- 디자인 패턴
- Spring
- 알고리즘
- JavaScript
- spring webflux
- redis
- 자바
- Algorithm
- 자료구조
- MSA
- OS
- Java
- 네트워크
- 컴퓨터구조
- c언어
- react
- JPA
- Kafka
- Data Structure
- 운영체제
- Proxy
- C
- IT
Archives
- Today
- Total
시냅스
백준 boj 2309 - 일곱 난쟁이 (파이썬, python) 본문
https://www.acmicpc.net/problem/2309
브루트포스를 단순히 모든 가능성을 체크하는 이중 반복문을 통해 풀었다.
총 합에서 두 개의 요소를 삭제했을 때 100이 나오게 되면 정답으로 처리해주었다.
다만, 파이썬 문법에 아직은 익숙하지 않다고 느끼는 부분이 몇몇 있었는데,
del 키워드를 이용해서 리스트의 요소를 삭제하면
리스트의 인덱스가 무너져 원하지 않는 값이 도출된다는 점,
마찬가지로 remove 키워드를 사용하여 삭제할 때에도
원소를 직접 삭제하면 위와 같은 현상이 다시 발생하지만,
변수를 하나 할당하여 리스트에서 찾은 뒤 삭제하게하면 원하는 값을 도출할 수 있었다.
쉬운 문제라고 생각했다가 오히려 많이 배웠다.
code
nine_list = [int(input()) for i in range(9)]
total = sum(nine_list)
for i in range(9):
if len(nine_list) < 9: # index out of range error 피하기 위해 씀
break
for j in range(i + 1, 9):
if total - nine_list[i] - nine_list[j] == 100:
num1, num2 = nine_list[i], nine_list[j] # 애네 del로 바로 지우면 인덱스 무너짐
nine_list.remove(num1)
nine_list.remove(num2)
nine_list.sort()
for i in range(7):
print(nine_list[i])
break
'알고리즘' 카테고리의 다른 글
백준 boj 1476 - 날짜 계산 (파이썬, python) (0) | 2022.02.10 |
---|---|
백준 boj 3085 - 사탕 게임 (파이썬, python) (0) | 2022.02.09 |
백준 boj 17425 - 약수의 합 (파이썬, python) (0) | 2022.02.08 |
백준 boj 6588 - 골드바흐의 추측 (파이썬, python) (0) | 2022.02.08 |
백준 boj 2609 - 최대공약수와 최소공배수 (파이썬, python) (0) | 2022.02.08 |
Comments