코딩하는 Fug

2309 일곱 난쟁이 본문

백준풀이-python

2309 일곱 난쟁이

Fug 2021. 7. 13. 12:05

https://www.acmicpc.net/problem/2309

#브루트포스 알고리즘

 

2309번: 일곱 난쟁이

아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다.

www.acmicpc.net

#2309 일곱 난쟁이 정리

 

l=[int(input()) for i in range(9)]

 

#리스트로 9난쟁이 받기

 

hap=sum(l)

 

#l의 합계

 

for i in range(8):

 

for j in range(i+1,9):

 

#조합느낌으로 겹치지않게 2개를 골라서 뺀다

 

if hap-l[i]-l[j]==100:

 

a=l[i]

 

b=l[j]

 

l.remove(a)

 

l.remove(b)
# 그냥 무지성 l.remove(l[i] l.remove[l[j]]했다가 한번 틀렸다. 한번 l[i]를 빼버리면 더이상 l[j]는 내가 알던 l[j]가 아니다.
break

if len(l)==7:

break

l.sort()

for i in l:

print(i)

'''

근데 뭔가 이상해서 좀 찾아보게 되었다.

 

이상하게 느낀점

1. 코드가 너무 투박함

2. 그냥 구현으로 푼것 같은 느낌

3. 기분이 그럼 그냥

 

그래서 찾아보니

중간에 if len(l)==7 부분을 flag변수로 0 1 처리해서 통과되었으면 1로 바꿔서 break 이런식으로 하면 좀 덜 투박하게 된다는 것을 알게 되었다.

 

 

'백준풀이-python' 카테고리의 다른 글

2693 N번째 큰 수  (0) 2021.07.13
2609 최대공약수와 최소공배수  (0) 2021.07.13
10870 피보나치 수 5  (0) 2021.07.13
2460 지능형 기차 2  (0) 2021.07.13
10818 최소, 최대  (0) 2021.07.13