Skip to content

Commit 4910c87

Browse files
authored
Merge pull request #51 from YoonYn9915/main
YoonYn9915 / 7월5주차/ 4문제
2 parents a0c5cc6 + 7e9a583 commit 4910c87

File tree

4 files changed

+82
-0
lines changed

4 files changed

+82
-0
lines changed
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
from collections import deque
2+
import sys
3+
input = sys.stdin.readline
4+
5+
dr = [1, -1, 0, 0] # down, up, right, left
6+
dc = [0, 0, 1, -1]
7+
8+
N, K = map(int, input().split())
9+
board = [] # 바이러스 정보 받아올 배열
10+
for _ in range(N):
11+
board.append(list(map(int, input().split())))
12+
13+
S, X, Y = map(int, input().split()) # 시간, 행, 열
14+
15+
q = []
16+
for i in range(N):
17+
for j in range(N):
18+
if board[i][j] != 0: # 바이러스가 있는 위치
19+
q.append((board[i][j], i, j, 0)) # 바이러스 정보, 행, 열, 흘러간 시간
20+
q.sort() # (주의) 리스트로 받아 정렬 후 queue로 변경!
21+
q = deque(q)
22+
23+
while q: # BFS
24+
viru, row, col, time = q.popleft()
25+
if time == S: # 시간이 S만큼 지났다면 종료
26+
break
27+
for d in range(4): # 상하좌우 이동
28+
r = row + dr[d]
29+
c = col + dc[d]
30+
if -1 < r < N and -1 < c < N and not board[r][c]: # 범위를 벗어나지 않고 위치 값이 0일 때
31+
board[r][c] = viru # 바이러스 배치
32+
q.append((viru, r, c, time+1)) # 다음 번 위치를 큐에 저장
33+
34+
print(board[X-1][Y-1])
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import sys
2+
3+
inp = sys.stdin.readline
4+
5+
arr = inp().split()
6+
7+
n = arr[0]
8+
b = int(arr[1])
9+
10+
ans = 0
11+
i = 1
12+
length = len(n)
13+
14+
for char in n:
15+
if char >= 'A' and char<='Z':
16+
ans = ans + pow(b,length - i) * (ord(char) - ord('A') + 10)
17+
else:
18+
ans = ans + pow(b,length - i) * int(char)
19+
i+=1
20+
21+
print(ans)
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import sys
2+
3+
def fib(n):
4+
if n == 0:
5+
return 0
6+
if n == 1:
7+
return 1
8+
9+
return fib(n-1) + fib(n-2)
10+
11+
inp = sys.stdin.readline
12+
13+
n = int(inp())
14+
15+
print(fib(n))
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import sys
2+
3+
def factorial(n):
4+
if n == 0 or n == 1:
5+
return 1
6+
return n * factorial(n-1)
7+
8+
inp = sys.stdin.readline
9+
10+
n = int(inp())
11+
12+
print(factorial(n))

0 commit comments

Comments
 (0)