728x90
2309. 일곱 난쟁이
#1차 제출
height = []
for i in range(9):
a = int(input())
height.append(a)
for j in height:
h = height
h.remove(j)
for k in h:
if sum(height)-j-k == 100:
height.remove(j)
height.remove(k)
break
if len(height) == 7:
break
height.sort()
for l in height:
print(l)
원래는 이중for문에서 뺐을 때 100이 되는 두 개의 요소를 찾으면 remove 후 for문을 break할 생각이었는데, 아직 for문을 잘 못다루다보니 계속 오답이 났다.
#2차 제출
height = []
for i in range(9):
a = int(input())
height.append(a)
height.sort()
for j in height:
for k in height:
if sum(height)-j-k == 100:
a, b = j, k
height.remove(a)
height.remove(b)
for l in height:
print(l)
결국 for문 도중에는 리스트를 건드리지 않고, 두 요소를 찾은 뒤 마지막에 remove 해서 코드를 완성했다.
2231. 분해합
N = int(input())
ans = 0
for i in range(1,N):
sum_ = 0
for j in range(len(str(i))):
sum_ += int(str(i)[j])
if i + sum_ == N:
ans = i
break
print(ans)
형 변환에 계속 신경 쓰고, 탐색해서 답을 찾지 못했을 때는 for문 처음에서 변수를 초기화해줘야 한다는 걸 계속 생각하자.
3085. 사탕 게임
N = int(input())
l = []
anslist = []
countnum = 1
for i in range(N):
l.append(list(map(str, input())))
#위쪽 사탕과 교환
for j in range(1, N):
for k in range(N):
if l[j][k] != l[j-1][k]:
l[j][k], l[j-1][k] = l[j-1][k], l[j][k]
# 이웃이랑 일치 여부
for ii in range(len(l) - 1):
countnum = 1
for jj in range(len(l) - 1):
if l[ii][jj] == l[ii][jj + 1]:
countnum += 1
else:
anslist.append(countnum)
countnum = 1
for ii in range(len(l) - 1):
for jj in range(len(l) - 1):
if l[ii][jj] == l[ii + 1][jj]:
countnum += 1
else:
anslist.append(countnum)
countnum = 1
#왼쪽 사탕과 교환
for j in range(N):
for k in range(1, N):
if l[j][k] != l[j][k-1]:
l[j][k], l[j][k-1] = l[j][k-1], l[j][k]
# 이웃이랑 일치 여부
for ii in range(len(l) - 1):
countnum = 1
for jj in range(len(l) - 1):
if l[ii][jj] == l[ii][jj + 1]:
countnum += 1
else:
anslist.append(countnum)
countnum = 1
for ii in range(len(l) - 1):
for jj in range(len(l) - 1):
if l[ii][jj] == l[ii + 1][jj]:
countnum += 1
else:
anslist.append(countnum)
countnum = 1
print(max(anslist))
파멸의 5중for문... 대충 어떤 식으로 구현해야 하는지 감은 오지만 깔끔하게 코드를 짜기가 어렵다. 시간초과도 나고, 예제 답은 맞추는데 제출하면 계속 오답이 뜬다. 머리 식히고 내일 다시 고민해보기...
728x90
'알고리즘 > 백준' 카테고리의 다른 글
[백준]230124 문제풀이 (0) | 2023.01.24 |
---|---|
[백준]230121 문제풀이 (2) | 2023.01.21 |
[백준]230119 문제풀이 (0) | 2023.01.20 |
[백준]230118 문제풀이 (0) | 2023.01.18 |
[백준]230117 문제풀이 (0) | 2023.01.17 |
댓글