728x90
1021. 회전하는 큐
def two(list_):
a = list_.pop(0)
list_.append(a)
return list_
def three(list_):
a = list_.pop(-1)
list_.insert(0, a)
return list_
N, M = map(int, input().split())
num_list = []
for i in range(1, N+1):
num_list.append(i)
pop_list = list(map(int, input().split()))
twocount, threecount = 0, 0
while True:
if len(pop_list) == 0:
break
n = pop_list.pop(0)
if num_list.index(n) == 0:
num_list.remove(n)
N -= 1
elif num_list.index(n) < (N / 2):
for i in range(num_list.index(n)):
two(num_list)
twocount += 1
num_list.remove(n)
N -= 1
elif num_list.index(n) >= (N / 2):
for i in range(N - num_list.index(n)):
three(num_list)
threecount += 1
num_list.remove(n)
N -= 1
print(twocount + threecount)
큐 입문하는 문제... 리스트를 원형으로 놓고 돌린다고 생각하니 문제 풀기가 좀 더 수월해졌다
1018. 체스판 다시 칠하기
a, b = map(int, input().split())
newboard = []
for i in range(a):
newboard.append(list(input()))
board_bw = []
count = 0
for i in range(8):
board_bw.append([])
count += 1
for j in range(8):
if count % 2 == 1:
board_bw[i].append('B')
count += 1
else:
board_bw[i].append('W')
count += 1
changelist = []
for k in range(a - 7):
for l in range(b - 7):
bw = 0
wb = 0
for i in range(k, k+8):
for j in range(l, l+8):
if newboard[i][j] != board_bw[i-k][j-l]:
bw += 1
else:
wb += 1
if bw <= wb:
changelist.append(bw)
else:
changelist.append(wb)
print(min(changelist))
문제 잘못 읽었다가 뻘짓한 문제.. 문제를 제대로 읽고 로직을 짜고 키보드에 손 올리자
1436. 영화감독 숌
N = int(input())
num = 1
count = 0
while count < N:
num += 1
if '666' in str(num):
count += 1
print(num)
예시가 쉽게 나와서 쉽게 봤지만 생각보다 생각할 부분이 좀 있었다
1158. 요세푸스 문제
N, K = map(int, input().split())
num_list = []
new_list = []
for i in range(1, N + 1):
num_list.append(i)
n = K
while len(num_list) > 2:
new_list.append(num_list.pop(n-1))
n += K - 1
while n > len(num_list):
n -= len(num_list)
if N == 1:
print('<1>')
elif n % 2:
new_list.append(num_list[0])
new_list.append(num_list[1])
print('<', end='')
for i in new_list[:-1]:
print(i, end=', ')
print(new_list[-1], end='')
print('>')
else:
new_list.append(num_list[1])
new_list.append(num_list[0])
print('<', end = '')
for i in new_list[:-1]:
print(i, end = ', ')
print(new_list[-1], end = '')
print('>')
오늘의 시간 순삭 문제...
큐에서 pop을 활용하는 법에 대해 조금 감은 잡은 것 같다
지역 변수를 밑에까지 끌고 왔어야 하는데 머릿속에 완벽하게 정리돼있지 않고 코드가 너저분해서 계속 실수가 나오는 것 같다
728x90
'알고리즘 > 백준' 카테고리의 다른 글
[백준]230128-30 문제풀이 (0) | 2023.01.30 |
---|---|
[백준]230127 문제풀이 (0) | 2023.01.30 |
[백준]230125 문제풀이 (0) | 2023.01.25 |
[백준]230124 문제풀이 (0) | 2023.01.24 |
[백준]230121 문제풀이 (2) | 2023.01.21 |
댓글