swea4874 Forth
for tc in range(1, int(input())+1):
lst = input().split()
stk = []
ans = ''
for i in range(len(lst)):
if lst[i].isdigit():
stk.append(lst[i])
elif lst[i] == '+':
if len(stk) >1:
a = int(stk.pop())
b = int(stk.pop())
stk.append(a+b)
else:
ans = 'error'
break
elif lst[i] == '-':
if len(stk) >1:
a = int(stk.pop())
b = int(stk.pop())
stk.append(b-a)
else:
ans = 'error'
break
elif lst[i] == '*':
if len(stk) >1:
a = int(stk.pop())
b = int(stk.pop())
stk.append(a*b)
else:
ans = 'error'
break
elif lst[i] == '/':
if len(stk) >1:
a = int(stk.pop())
b = int(stk.pop())
stk.append(b//a)
else:
ans = 'error'
break
elif lst[i] == '.':
if len(stk) > 1:
ans = 'error'
else:
ans = stk[-1]
print('#{} {}'.format(tc, ans))
swea4875 미로
def solve(r, c):
global ans
visited.append((r, c))
if miro[r][c] == 3:
ans = 1
return
dr = [-1, 0, 1, 0]
dc = [0, 1, 0, -1]
for i in range(4):
nr = r + dr[i]
nc = c + dc[i]
if 0 <= nr < N and 0 <= nc < N and (nr, nc) not in visited and miro[nr][nc] != 1:
solve(nr, nc)
for tc in range(1, int(input()) + 1):
N = int(input())
miro = [list(map(int, input())) for _ in range(N)]
visited = []
ans = 0
for i in range(N):
for j in range(N):
if miro[i][j] == 2:
start = (i, j)
solve(start[0], start[1])
print('#{} {}'.format(tc, ans))
swea4881 배열 최소합
def solve(row, total):
global minn
if row == N:
if total < minn:
minn = total
return minn
if total >= minn:
return
for i in range(N):
if col_chk[i] == 0:
col_chk[i] = 1
solve(row+1, total + arr[row][i])
col_chk[i] = 0
for tc in range(1, int(input()) + 1):
N = int(input())
arr = [list(map(int, input().split())) for _ in range(N)]
col_chk = [0] * N
minn = 987654321
solve(0, 0)
print('#{} {}'.format(tc, minn))
swea1223 계산기2
for tc in range(1, 11):
N = int(input())
formula = input()
result = ''
stk = []
for s in formula:
if s.isdigit():
result += s
else:
if s == '+':
if len(stk) == 0:
stk.append(s)
else:
if stk[-1] == '+' or stk[-1] == '*':
result += stk.pop()
stk.append(s)
elif s == '*':
if len(stk) == 0 or stk[-1] == '+':
stk.append(s)
else:
if stk[-1] == '*':
result += stk.pop()
stk.append(s)
while stk:
result += stk.pop()
stack_cal = []
for i in range(len(result)):
if result[i].isdigit():
stack_cal.append(result[i])
elif result[i] == '+':
a = int(stack_cal.pop())
b = int(stack_cal.pop())
stack_cal.append(a+b)
elif result[i] == '*':
a = int(stack_cal.pop())
b = int(stack_cal.pop())
stack_cal.append(a*b)
print('#{}'.format(tc), *stack_cal)
swea 1224 계산기3
for tc in range(1, 11):
length = int(input())
string = input()
stk = []
ans = ''
for i in range(len(string)):
if string[i].isdigit():
ans += string[i]
else:
if string[i] == '(':
stk.append(string[i])
if string[i] == '*':
while len(stk) > 0 and (stk[-1] == '*'):
ans += stk.pop()
stk.append(string[i])
elif string[i] == '+':
while len(stk) > 0 and (stk[-1] != '('):
ans += stk.pop()
stk.append(string[i])
elif string[i] == ')':
while stk and stk[-1] != '(':
ans += stk.pop()
stk.pop()
while stk:
ans += stk.pop()
total = []
for i in range(len(ans)):
if ans[i].isdigit():
total.append(ans[i])
elif ans[i] == '+':
a = int(total.pop())
b = int(total.pop())
total.append(a+b)
elif ans[i] == '*':
a = int(total.pop())
b = int(total.pop())
total.append(a*b)
print('#{}'.format(tc), total[-1])
swea4615 재미있는 오셀로게임
def solve(c, r, color):
dr =[-1, -1, 0, 1, 1, 1, 0, -1]
dc = [0, 1, 1, 1, 0, -1, -1, -1]
pan[r][c] = color
for i in range(8):
nr = r
nc = c
while True:
nr += dr[i]
nc += dc[i]
if nr <= 0 or nr > N or nc <= 0 or nc > N:
break
if pan[nr][nc] == 0:
break
if pan[nr][nc] == color:
while not (nr == r and nc == c):
nr -= dr[i]
nc -= dc[i]
pan[nr][nc] = color
break
T = int(input())
for tc in range(1, T+1):
N, M = map(int, input().split())
pan = [[0] * (N+1) for _ in range(N+1)]
pan[N//2][N//2] = 2
pan[N//2][N//2+1] = 1
pan[N//2+1][N//2] = 1
pan[N//2+1][N//2+1] = 2
for i in range(M):
c, r, color = map(int, input().split())
solve(c, r, color)
cnt_b = 0
cnt_w = 0
for i in range(N+1):
for j in range(N+1):
if pan[i][j] == 1:
cnt_b += 1
elif pan[i][j] == 2:
cnt_w += 1
print('#{} {} {}'.format(tc, cnt_b, cnt_w))
swea2805 농작물 수확하기
(얘는 분류하자면 list2)
T = int(input())
for tc in range(1, T+1):
N = int(input())
farm = [list(map(int, input())) for _ in range(N)]
total = 0
for i in range(N):
for j in range(N):
total += farm[i][j]
m1 = 0
for i in range(N//2):
for j in range(N//2-i):
m1 += farm[i][j]
m2 = 0
for i in range(N//2):
for j in range(N//2+i+1, N):
m2 += farm[i][j]
m3 = 0
for i in range(N//2+1, N):
for j in range(i-N//2):
m3 += farm[i][j]
m4 = 0
for i in range(N//2+1, N):
for j in range(N-(i-N//2), N):
m4 += farm[i][j]
print('#{} {}'.format(tc, total - (m1 + m2 + m3 + m4)))
swea1974 스도쿠 검증
T = int(input())
for tc in range(1, T+1):
sdok = [list(map(int, input().split())) for _ in range(9)]
chk1 = 0
for i in range(9):
summ = 0
for j in range(9):
summ += sdok[i][j]
if summ == 45:
chk1 += 1
chk2 = 0
for j in range(9):
summ = 0
for i in range(9):
summ += sdok[i][j]
if summ == 45:
chk2 += 1
chk3 = 0
s = 0
for i in range(3):
for j in range(3):
s += sdok[i][j]
if s == 45:
chk3 += 1
s = 0
for i in range(3, 6):
for j in range(3):
s += sdok[i][j]
if s == 45:
chk3 += 1
s = 0
for i in range(6, 9):
for j in range(3):
s += sdok[i][j]
if s == 45:
chk3 += 1
s = 0
for i in range(3):
for j in range(3, 6):
s += sdok[i][j]
if s == 45:
chk3 += 1
s = 0
for i in range(3, 6):
for j in range(3, 6):
s += sdok[i][j]
if s == 45:
chk3 += 1
s = 0
for i in range(6, 9):
for j in range(3, 6):
s += sdok[i][j]
if s == 45:
chk3 += 1
s = 0
for i in range(3):
for j in range(6, 9):
s += sdok[i][j]
if s == 45:
chk3 += 1
s = 0
for i in range(3, 6):
for j in range(6, 9):
s += sdok[i][j]
if s == 45:
chk3 += 1
s = 0
for i in range(6, 9):
for j in range(6, 9):
s += sdok[i][j]
if s == 45:
chk3 += 1
if chk3 + chk2 + chk1 == 27:
answer = 1
else:
answer = 0
print('#{} {}'.format(tc, answer))