Notice
Recent Posts
Recent Comments
Link
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- redis ์กฐํ
- aws saa ํฉ๊ฒฉ
- ํ๋ก๊ทธ๋๋จธ์ค ์ปฌ๋ฌ๋ง๋ถ
- ์คํํ๋ ๋ฏธ์ค
- Codedeploy ์ค๋ฅ
- redis ํ ์คํธ์ฝ๋
- docker-compose kafka
- ํ์ดํผ๋ฐ์ด์
- jvm ๋ฐ๋ฐ๋ฅ๊น์ง ํํค์น๊ธฐ
- docker compose
- docker
- s3 ์ด๋ฏธ์ง ์ ์ฅ
- s3 ์ด๋ฏธ์ง ๋ค์ด๋ก๋
- JPA
- ์๋ฒ ํฐ์ง๋ ๋์ปค ์ฌ์คํ
- Kafka
- s3 log ์ ์ฅ
- ํ๋ก๊ทธ๋๋จธ์ค
- ์ ํจ์ค ๋น๋ ์ค๋ฅ
- ์๋ฐ
- AWS Certified Solutions Architect - Associate
- nGrinder
- docker ps -a
- aws ์ฟ ํฐ
- private subnet ec2 ๋ก์ปฌ ์ ์
- Entity
- ํ๋ก๊ทธ๋๋จธ์ค ํฉ์นํ์์๊ธ
- ์ ํจ์ค ์ค์ผ์ค๋ฌ
- prod docker-compose
- ๋ค์ค ์ปจํ ์ด๋
Archives
- Today
- Total
๐๐ข๐๐ โ๐๐๐ ๐๐๐ก๐๐ ๐๐๐๐โง
[Python] ๋ฐฑ์ค 4963 & ๋ฐฑ์ค 1726 ๋ณธ๋ฌธ
๐ฃ๐ฟ๐ผ๐ด๐ฟ๐ฎ๐บ๐บ๐ถ๐ป๐ด๐ป/[๐๐ฒ๐ญ๐ก๐จ๐ง] ๐๐ฅ๐ ๐จ๐ซ๐ข๐ญ๐ก๐ฆ
[Python] ๋ฐฑ์ค 4963 & ๋ฐฑ์ค 1726
๐คRyusun๐ค 2023. 11. 29. 17:54# ๋ฐฑ์ค 4963
from collections import deque
import sys
input = sys.stdin.readline
queue = deque()
dx = [1, -1, 0, 0, 1, -1, 1, -1]
dy = [0, 0, -1, 1, -1, 1, 1, -1]
def bfs(i, j):
queue.append([i, j])
graph[i][j] = 0
while queue:
x, y = queue.popleft()
for i in range(8):
nx = x + dx[i]
ny = y + dy[i]
if 0<= nx < n and 0<= ny < m and graph[nx][ny] == 1:
queue.append([nx, ny])
graph[nx][ny] = 0
while True:
m,n = map(int, input().split())
if m == 0 & n == 0:
break
graph = [list(map(int, input().split())) for _ in range(n)]
cnt = 0
for i in range(n):
for j in range(m):
if graph[i][j] == 1:
bfs(i, j)
cnt += 1
print(cnt)
# 1726
import sys
from collections import deque
input = sys.stdin.readline
n, m = map(int, input().split())
graph = [list(map(int, input().split())) for _ in range(n)]
sx, sy, sd = map(int, input().split())
ex, ey, ed = map(int, input().split())
visited = [[[False for _ in range(5)] for _ in range(m)] for _ in range(n)]
def change_dir(before, after):
if before == after:
return 0
elif (before, after) == (1, 2) or (before, after) == (2, 1) or (before, after) == (3, 4) or (before, after) == (4, 3):
return 2
else:
return 1
def bfs(i, j, dir, visited):
dx = [0, 0, 0, 1, -1]
dy = [0, 1, -1, 0, 0]
q = deque()
q.append((i, j, dir, 0))
visited[i][j][dir] = True
while q:
x, y, dir, cnt = q.popleft()
if x == ex - 1 and y == ey - 1:
return cnt + change_dir(dir, ed)
for i in range(1, 4): # 1 ~3 ์นธ ์ ์ง
nx = x + dx[dir] * i
ny = y + dy[dir] * i
if 0 <= nx < n and 0 <= ny < m and visited[nx][ny][dir]: # ํด๋น ์ฝ๋ ์ถ๊ฐ์ํ๋ฉด ๋ฉ๋ชจ๋ฆฌ์ด๊ณผ
continue
if 0 <= nx < n and 0 <= ny < m and graph[nx][ny] != 1:
visited[nx][ny][dir] = True
q.append((nx, ny, dir, cnt + 1))
else: # ๋ฒฝ์ ๋ง๋๋ฉด ์ ์ง ๋ฉ์ถค
break
for i in range(1, 5): # ๋ฐฉํฅ ๋ฐ๊พธ๊ธฐ
if not visited[x][y][i]:
visited[x][y][i] = True
q.append((x, y, i, cnt + change_dir(dir, i)))
print(bfs(sx - 1, sy - 1, sd, visited))
๋ก๋ด๋ฌธ์ ์ฆ๋ง ์ด๋ ค์ ๋คใ ใ ์ ๋ต์ ๋์ค๋๋ฐ ๊ณ์ ํ๋ ค์ ๊ตฌ๊ธ๋ง์ผ๋ก ํํธ ์ป๊ณ ํต๊ณผ..ใ ใ
queue์ cnt๋ฅผ ๋ฃ์ด์ฃผ๋๊ฒ ํฌ์ธํธ!
'๐ฃ๐ฟ๐ผ๐ด๐ฟ๐ฎ๐บ๐บ๐ถ๐ป๐ด๐ป > [๐๐ฒ๐ญ๐ก๐จ๐ง] ๐๐ฅ๐ ๐จ๐ซ๐ข๐ญ๐ก๐ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python] ๋ฐฑ์ค 1476 & ๋ฐฑ์ค 3085 (0) | 2023.12.01 |
---|---|
[Python] ๋ฐฑ์ค 1054 (0) | 2023.11.30 |
[Python] ๋ฐฑ์ค 10451 & ๋ฐฑ์ค 2331 (2) | 2023.11.28 |
[Python] ๋ฐฑ์ค 1260 & ๋ฐฑ์ค 11724 (0) | 2023.11.27 |
[Python] ํ๋ก๊ทธ๋๋จธ์ค ๊ตฌ๋ช ๋ณดํธ & ํ๋ก๊ทธ๋๋จธ์ค ๋คํธ์ํฌ (0) | 2023.09.20 |