ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ ์คํธ ์ฐ์ต ๋ฌธ์ ๋ ๋ฒจ2์ 4๋ฌธ์ ๊ฐ ๋จ์์๋ค.
๊ทธ์ค ์ ๋ต๋ฅ ์ด ์ ์ผ ๋์ (38%) ๋ฆฌ์ฝ์ณ ๋ก๋ด๋ถํฐ ํ์ด๋ณด๊ธฐ๋ก ํ์!
๊ทผ๋ฐ ์๋ฌด๋ฆฌ ๋ด๋ ๋ด ๋๋จธ๋ฆฌ๋ก๋ ใ ใ ใ ๋์ ํ ํ๋ฆฌ์ง ์๋ ๋ฆฌ์ฝ์ณ ๋ก๋ด... ๋ฆฌ์ฝ์ณ ๋ก๋ด์ ๋ณด๋๊ฒ์ ์ด๋ฆ์ธ๋ฐ, ๊ทธ ๋ณด๋๊ฒ์์ ๋ก๋ด ์์ง์๊ณผ ๋น์ทํ๋ค. ํ์ง๋ง ๋ฌธ์ ๋ ๋ณด๋๊ฒ์์ฒ๋ผ ์ฝ์ง๊ฐ ์์๋ค.
๋ฌธ์ ์ค๋ช
๋ฆฌ์ฝ์ณ ๋ก๋ด์ด๋ผ๋ ๋ณด๋๊ฒ์์ด ์์ต๋๋ค.
์ด ๋ณด๋๊ฒ์์ ๊ฒฉ์๋ชจ์ ๊ฒ์ํ ์์์ ๋ง์ ์์ง์ด๋ ๊ฒ์์ผ๋ก, ์์ ์์น์์ ๋ชฉํ ์์น๊น์ง ์ต์ ๋ช ๋ฒ๋ง์ ๋๋ฌํ ์ ์๋์ง ๋งํ๋ ๊ฒ์์
๋๋ค.
์ด ๊ฒ์์์ ๋ง์ ์์ง์์ ์, ํ, ์ข, ์ฐ 4๋ฐฉํฅ ์ค ํ๋๋ฅผ ์ ํํด์ ๊ฒ์ํ ์์ ์ฅ์ ๋ฌผ์ด๋ ๋งจ ๋์ ๋ถ๋ชํ ๋๊น์ง ๋ฏธ๋๋ฌ์ ธ ์ด๋ํ๋ ๊ฒ์ ํ ๋ฒ์ ์ด๋์ผ๋ก ์นฉ๋๋ค.
๋ค์์ ๋ณด๋๊ฒ์ํ์ ๋ํ๋ธ ์์์
๋๋ค.
. | . | . | D | . | . | R |
. | D | . | G | . | . | . |
. | . | . | . | D | . | D |
D | . | . | . | . | D | . |
. | . | D | . | . | . | . |
์ฌ๊ธฐ์ "."์ ๋น ๊ณต๊ฐ์, "R"์ ๋ก๋ด์ ์ฒ์ ์์น๋ฅผ, "D"๋ ์ฅ์ ๋ฌผ์ ์์น๋ฅผ, "G"๋ ๋ชฉํ์ง์ ์ ๋ํ๋
๋๋ค.
์ ์์์์๋ "R" ์์น์์ ์๋, ์ผ์ชฝ, ์, ์ผ์ชฝ, ์๋, ์ค๋ฅธ์ชฝ, ์ ์์๋ก ์์ง์ด๋ฉด 7๋ฒ ๋ง์ "G" ์์น์ ๋ฉ์ถฐ ์ค ์ ์์ผ๋ฉฐ, ์ด๊ฒ์ด ์ต์ ์์ง์ ์ค ํ๋์
๋๋ค.
๊ฒ์ํ์ ์ํ๋ฅผ ๋ํ๋ด๋ ๋ฌธ์์ด ๋ฐฐ์ด board๊ฐ ์ฃผ์ด์ก์ ๋, ๋ง์ด ๋ชฉํ์์น์ ๋๋ฌํ๋๋ฐ ์ต์ ๋ช ๋ฒ ์ด๋ํด์ผ ํ๋์ง return ํ๋ solutionํจ์๋ฅผ ์์ฑํ์ธ์. ๋ง์ฝ ๋ชฉํ์์น์ ๋๋ฌํ ์ ์๋ค๋ฉด -1์ return ํด์ฃผ์ธ์.
์ ํ ์ฌํญ
- 3 ≤ board์ ๊ธธ์ด ≤ 100
- 3 ≤ board์ ์์์ ๊ธธ์ด ≤ 100
- board์ ์์์ ๊ธธ์ด๋ ๋ชจ๋ ๋์ผํฉ๋๋ค.
- ๋ฌธ์์ด์ ".", "D", "R", "G"๋ก๋ง ๊ตฌ์ฑ๋์ด ์์ผ๋ฉฐ ๊ฐ๊ฐ ๋น ๊ณต๊ฐ, ์ฅ์ ๋ฌผ, ๋ก๋ด์ ์ฒ์ ์์น, ๋ชฉํ ์ง์ ์ ๋ํ๋ ๋๋ค.
- "R"๊ณผ "G"๋ ํ ๋ฒ์ฉ ๋ฑ์ฅํฉ๋๋ค.
์ ์ถ๋ ฅ ์
board | result |
["...D..R", ".D.G...", "....D.D", "D....D.", "..D...."] | 7 |
[".D.R", "....", ".G..", "...D"] | -1 |
์ ์ถ๋ ฅ ์ ์ค๋ช
- ์
์ถ๋ ฅ ์ #1
- ๋ฌธ์ ์ค๋ช ์ ์์์ ๊ฐ์ต๋๋ค.
- ์
์ถ๋ ฅ ์ #2
- "R" ์์น์ ์๋ ๋ง์ ์ด๋ป๊ฒ ์์ง์ฌ๋ "G" ์ ๋๋ฌ์ํฌ ์ ์์ต๋๋ค.
๋ฐ๋ผ์ -1์ return ํฉ๋๋ค.
- "R" ์์น์ ์๋ ๋ง์ ์ด๋ป๊ฒ ์์ง์ฌ๋ "G" ์ ๋๋ฌ์ํฌ ์ ์์ต๋๋ค.
. | D | . | R |
. | . | . | . |
. | G | . | . |
. | . | . | D |
ํ์ด
๋ฌด์ง์ฑ ํ์ด - ์คํจ
DFS - ์คํจ
BFS - ๋ฌดํ๋ฃจํ ใ ใ ใ
๋ญ ์๋ชปํ๊ธธ๋?
๊ทธ๋์ ๋ค์ ์๋ก ํ์ด๋ณธ๋ค.
. | . | . | D | . | . | R |
. | D | . | G | . | . | . |
. | . | . | . | D | . | D |
D | . | . | . | . | D | . |
. | . | D | . | . | . | . |
์ฐ์ ํ ๋๋ฆฌ๋ฅผ D๋ก ๊ฐ์ผ๋ค.
D | D | D | D | D | D | D | D | D |
D | . | . | . | D | . | . | R | D |
D | . | D | . | G | . | . | . | D |
D | . | . | . | . | D | . | D | D |
D | D | . | . | . | . | D | . | D |
D | . | . | D | . | . | . | . | D |
D | D | D | D | D | D | D | D | D |
๋ต์ด ๋์ค์ง ์๋ 3๊ฐ์ง ์ผ์ด์ค
- R์ ์ฌ๋ฐฉ์ด D๋ก ๊ฐ์ธ์ ธ์๋ ๊ฒฝ์ฐ ๋ฆฌ์ฝ์ณ ๋ก๋ด์ด ๋๊ฐ ์ ์์ผ๋ฏ๋ก ์คํจ.
- G์ฃผ๋ณ ์ฌ๋ฐฉ์ด D๋ก ๊ฐ์ธ์ ธ์๋ ๊ฒฝ์ฐ ๋ฆฌ์ฝ์ณ ๋ก๋ด์ด ๋์ฐฉํ ์ ์์ผ๋ฏ๋ก ์คํจ.
- G์ฃผ๋ณ์ D๊ฐ ์๋ ๊ฒฝ์ฐ, ๋ฆฌ์ฝ์ณ ๋ก๋ด์ด ๋ฉ์ถ ์ ์์ผ๋ฏ๋ก ์คํจ.
๋ค์์ ์ 3๊ฐ์ง ์ผ์ด์ค๊ฐ ์๋ ๊ฒฝ์ฐ ๊ธธ์ ์ฐพ์์ผ ํ๋๋ฐ...
- R ๋ถํฐ ์์ํ๋ ๋ฐฉ๋ฒ...
- ์ด ๊ฒฝ์ฐ๋ผ๋ฉด R ์์น์์ ์ฌ๋ฐฉ์ผ๋ก ๋ป์ด๋๊ฐ๋ ๋ฐฉ๋ฒ์ด ์๊ณ ,
(์ด๋์ ํ์นธ์ฉ์ด ์๋๋ผ ๋งํ ๋ ๊น์ง ์ญ์ฑ ๊ฐ์ผํจ)
- ์ด ๊ฒฝ์ฐ๋ผ๋ฉด R ์์น์์ ์ฌ๋ฐฉ์ผ๋ก ๋ป์ด๋๊ฐ๋ ๋ฐฉ๋ฒ์ด ์๊ณ ,
- G๋ถํฐ ์์ํ๋ ๋ฐฉ๋ฒ...
- ๊ฒฝ๋ก ์์ D๊ฐ ์๋ ์์น์์ ๋ถ๊ธฐํ๋ ๋ฐฉ๋ฒ์ด ์๋ค.
(๊ทผ๋ฐ ์ด๊ฑด ์ข ํท๊ฐ๋ฆผ ์ ๋ ๊น?)
- ๊ฒฝ๋ก ์์ D๊ฐ ์๋ ์์น์์ ๋ถ๊ธฐํ๋ ๋ฐฉ๋ฒ์ด ์๋ค.
๊ทธ๋์ ๋ด๊ฐ ์ ํํ ๋ฐฉ๋ฒ์, ์ฒ์ ์์ธ ์ผ์ด์ค 3๊ฐ ์ฒ๋ฆฌํ๊ณ , R๋ถํฐ ์์ํด์ BFS๋ก ๊ฐ๋ ๋ฐฉ๋ฒ.
- ๋ก๋ด์ ์ต์ด ์์ ์์น ์ฐพ๊ณ , "R"์ "."๋ก ๋ณ๊ฒฝ
๋ผ๊ณ ์๊ฐ์ ํ์ง๋ง ์ฝ์ง์ ํ๋ค. ใ ใ ใ
from collections import deque
def solution(board):
width = len(board[0]) + 2 # ๊ฐ๋ก
height = len(board) + 2 # ์ธ๋ก
board1 = [] # ์ง๋
rx, ry = 0, 0 # ๋ก๋ด์์น
dirs = ((-1, 0), (1, 0), (0, -1), (0, 1)) # BFS ํ์ 4 ๋ฐฉํฅ
visited = [[0] * width for _ in range(height)] # ๋ฐฉ๋ฌธ ์ ๋ณด
board1.append(["D"] * width)
for i,b in enumerate(board):
_tmp = ["D"]
for j,bb in enumerate(b):
if bb == "R":
rx, ry = j + 1, i + 1
_tmp.append(bb)
_tmp.append("D")
board1.append(_tmp)
board1.append(["D"] * width)
visited[ry][rx] = 1
def bfs():
q = deque()
q.append((rx, ry))
while q:
print("ํ:",q)
px, py = q.popleft()
if board1[py][px] == "G":
return visited[py][px]
for i in range(4):
nx, ny = px, py
while board1[ny + dirs[i][0]][nx+ dirs[i][1]] != "D":
nx = nx + dirs[i][1]
ny = ny + dirs[i][0]
print("i:",i,"x,y:",nx,ny,"visit:",board1[ny][nx])
for z in range(height):
for w in range(width):
if z==ny and w == nx:
print("R",end="")
else:
print(board1[z][w],end="")
print("")
if board1[ny][nx] !="D":
if visited[ny][nx] == 0:
visited[ny][nx] = visited[py][px] + 1
q.append((nx, ny))
return -1
answer = bfs()
if answer > 0: answer -= 1
return answer
์ฝ์งํ ๋ถ๋ถ์ ๋ก๋ด์ด ์ด๋ํด์ ๋ฒฝ์ ๋ถ๋ซํ ๋๊น์ง ๊ฐ๋ ๊ฒ, ๊ทธ๋ฆฌ๊ณ ์์น ์ ์ฅํ๋ ๋ถ๋ถ. print๋ก ๊ณ์ ์ฐ์ด๊ฐ๋ฉด์ ํ๋ค๊ฐ ๊ฒฐ๊ตญ ํํธ๋ฅผ ์ฐธ๊ณ ํ๋ค.
from collections import deque
def solution(board):
width = len(board[0]) + 2 # ๊ฐ๋ก
board1 = [] # ์ง๋
rx, ry = 0, 0 # ๋ก๋ด์์น
dirs = ((-1, 0), (1, 0), (0, -1), (0, 1)) # BFS ํ์ 4 ๋ฐฉํฅ
visited = [[0] * width for _ in range(len(board) + 2)] # ๋ฐฉ๋ฌธ ์ ๋ณด
q = deque() # BFS ํ์ ๋ค์ ๋ก๋ด ์์น
board1.append(["D"] * width)
for i,b in enumerate(board):
_tmp = ["D"]
for j,bb in enumerate(b):
if bb == "R":
rx, ry = j + 1, i + 1
_tmp.append(bb)
_tmp.append("D")
board1.append(_tmp)
board1.append(["D"] * width)
visited[ry][rx] = 1
def bfs():
q.append((rx, ry))
while q:
px, py = q.popleft()
if board1[py][px] == "G":
return visited[py][px]
for i in range(4):
nx, ny = px, py
while board1[ny + dirs[i][0]][nx+ dirs[i][1]] != "D":
nx = nx + dirs[i][1]
ny = ny + dirs[i][0]
if board1[ny][nx] !="D" and visited[ny][nx] == 0:
visited[ny][nx] = visited[py][px] + 1
q.append((nx, ny))
return -1
answer = bfs()
if answer > 0:
return answer - 1
else:
return answer
์ ํ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ํต๊ณผ (5.89ms, 10.3MB)
ํ
์คํธ 2 ใ ํต๊ณผ (4.85ms, 10.4MB)
ํ
์คํธ 3 ใ ํต๊ณผ (0.49ms, 10.3MB)
ํ
์คํธ 4 ใ ํต๊ณผ (1.79ms, 10.2MB)
ํ
์คํธ 5 ใ ํต๊ณผ (1.61ms, 10.2MB)
ํ
์คํธ 6 ใ ํต๊ณผ (0.35ms, 10.3MB)
ํ
์คํธ 7 ใ ํต๊ณผ (7.79ms, 10.3MB)
ํ
์คํธ 8 ใ ํต๊ณผ (0.90ms, 10.2MB)
ํ
์คํธ 9 ใ ํต๊ณผ (3.22ms, 10.2MB)
ํ
์คํธ 10 ใ ํต๊ณผ (4.52ms, 10.3MB)
ํ
์คํธ 11 ใ ํต๊ณผ (0.07ms, 10.3MB)
ํ
์คํธ 12 ใ ํต๊ณผ (0.06ms, 10.2MB)
ํ
์คํธ 13 ใ ํต๊ณผ (0.09ms, 10.2MB)
ํ
์คํธ 14 ใ ํต๊ณผ (0.56ms, 10.3MB)
ํ
์คํธ 15 ใ ํต๊ณผ (0.35ms, 10.2MB)
ํ
์คํธ 16 ใ ํต๊ณผ (2.88ms, 10.3MB)
ํ
์คํธ 17 ใ ํต๊ณผ (0.64ms, 10.3MB)
ํ
์คํธ 18 ใ ํต๊ณผ (0.75ms, 10.3MB)
ํ
์คํธ 19 ใ ํต๊ณผ (2.74ms, 10.2MB)
ํ
์คํธ 20 ใ ํต๊ณผ (0.15ms, 10.3MB)
ํ
์คํธ 21 ใ ํต๊ณผ (7.22ms, 10.3MB)
ํ
์คํธ 22 ใ ํต๊ณผ (1.03ms, 10.3MB)
ํ
์คํธ 23 ใ ํต๊ณผ (0.62ms, 10.4MB)
ํ
์คํธ 24 ใ ํต๊ณผ (7.26ms, 10.4MB)
ํ
์คํธ 25 ใ ํต๊ณผ (2.95ms, 10.2MB)
ํ
์คํธ 26 ใ ํต๊ณผ (2.85ms, 10.4MB)
ํ
์คํธ 27 ใ ํต๊ณผ (0.86ms, 10.2MB)
ํ ... ๋ค๋ฅธ ์ฌ๋์ ํ์ด...
์ฝ๋๊ฐ ์ฐธ ์งง๊ตฌ๋...;;;
def solution(board):
que = []
for x, row in enumerate(board):
for y, each in enumerate(row):
if board[x][y] == 'R':
que.append((x, y, 0))
visited = set()
while que:
x, y, length = que.pop(0)
if (x, y) in visited:
continue
if board[x][y] == 'G':
return length
visited.add((x, y))
for diff_x, diff_y in ((0, 1), (0, -1), (1, 0), (-1, 0)):
now_x, now_y = x, y
while True:
next_x, next_y = now_x + diff_x, now_y + diff_y
if 0 <= next_x < len(board) and 0 <= next_y < len(board[0]) and board[next_x][next_y] != 'D':
now_x, now_y = next_x, next_y
continue
que.append((now_x, now_y, length + 1))
break
return -1
์ ํ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ํต๊ณผ (15.03ms, 10.2MB)
ํ
์คํธ 2 ใ ํต๊ณผ (5.51ms, 10.1MB)
ํ
์คํธ 3 ใ ํต๊ณผ (0.60ms, 10.3MB)
ํ
์คํธ 4 ใ ํต๊ณผ (2.24ms, 10.1MB)
ํ
์คํธ 5 ใ ํต๊ณผ (1.90ms, 10.1MB)
ํ
์คํธ 6 ใ ํต๊ณผ (0.39ms, 9.93MB)
ํ
์คํธ 7 ใ ํต๊ณผ (10.15ms, 10.1MB)
ํ
์คํธ 8 ใ ํต๊ณผ (0.94ms, 10.1MB)
ํ
์คํธ 9 ใ ํต๊ณผ (6.26ms, 10.2MB)
ํ
์คํธ 10 ใ ํต๊ณผ (5.15ms, 10.2MB)
ํ
์คํธ 11 ใ ํต๊ณผ (0.05ms, 10.2MB)
ํ
์คํธ 12 ใ ํต๊ณผ (0.05ms, 10MB)
ํ
์คํธ 13 ใ ํต๊ณผ (0.08ms, 10.1MB)
ํ
์คํธ 14 ใ ํต๊ณผ (0.62ms, 10.1MB)
ํ
์คํธ 15 ใ ํต๊ณผ (0.35ms, 10.1MB)
ํ
์คํธ 16 ใ ํต๊ณผ (3.28ms, 10.1MB)
ํ
์คํธ 17 ใ ํต๊ณผ (0.67ms, 10.2MB)
ํ
์คํธ 18 ใ ํต๊ณผ (0.85ms, 10.1MB)
ํ
์คํธ 19 ใ ํต๊ณผ (2.96ms, 10.1MB)
ํ
์คํธ 20 ใ ํต๊ณผ (0.17ms, 10.2MB)
ํ
์คํธ 21 ใ ํต๊ณผ (9.26ms, 10.1MB)
ํ
์คํธ 22 ใ ํต๊ณผ (1.26ms, 10.1MB)
ํ
์คํธ 23 ใ ํต๊ณผ (0.49ms, 10.2MB)
ํ
์คํธ 24 ใ ํต๊ณผ (9.64ms, 10.1MB)
ํ
์คํธ 25 ใ ํต๊ณผ (3.64ms, 10.3MB)
ํ
์คํธ 26 ใ ํต๊ณผ (3.36ms, 10.1MB)
ํ
์คํธ 27 ใ ํต๊ณผ (1.12ms, 10MB)
deque๋ฅผ ์ฐ๊ณ ์์ฐ๊ณ ์ ์ฐจ์ด๊ฐ ์๋ ํธ... ๊ทธ ์ธ์๋ BFS๋ผ์ ๋๋ถ๋ถ ์ฝ๋๊ฐ ๋น์ทํ๋ค. ์ด๋ฐ ๊ฒฝ์ฐ์ ์ฝ๊ฒ ์ดํดํ ์ ์๋ ๊ฐ๋ ์ฑ ์๋ ์ฝ๋๊ฐ ์ข ๋ ์ข์ ๊ฒ ๊ฐ๋ค.
from collections import deque
def solution(board):
answer = -1
direction = [(0, 1), (0, -1), (1, 0), (-1, 0)]
q = deque()
n, m = len(board), len(board[0])
visited = [[False]*m for _ in range(n)]
for x in range(n):
for y in range(m):
if board[x][y] == "R":
sx, sy = x, y
q.append((sx, sy, 0))
while q:
x, y, level = q.popleft()
if board[x][y] == "G":
answer = level
break
for dx, dy in direction:
scope = 1
while 1:
nx, ny = x + dx*scope, y + dy*scope
if nx < 0 or nx >= n or ny < 0 or ny >= m or board[nx][ny] == "D":
if visited[nx-dx][ny-dy] == False:
visited[nx-dx][ny-dy] = True
q.append((nx-dx, ny-dy, level+1))
break
scope += 1
return answer
์ ํ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ํต๊ณผ (5.35ms, 10.3MB)
ํ
์คํธ 2 ใ ํต๊ณผ (4.10ms, 10.2MB)
ํ
์คํธ 3 ใ ํต๊ณผ (0.44ms, 10.2MB)
ํ
์คํธ 4 ใ ํต๊ณผ (1.62ms, 10.1MB)
ํ
์คํธ 5 ใ ํต๊ณผ (1.69ms, 10.1MB)
ํ
์คํธ 6 ใ ํต๊ณผ (0.30ms, 10.1MB)
ํ
์คํธ 7 ใ ํต๊ณผ (6.55ms, 10.4MB)
ํ
์คํธ 8 ใ ํต๊ณผ (0.76ms, 10.4MB)
ํ
์คํธ 9 ใ ํต๊ณผ (2.22ms, 10.2MB)
ํ
์คํธ 10 ใ ํต๊ณผ (3.99ms, 10.2MB)
ํ
์คํธ 11 ใ ํต๊ณผ (0.04ms, 10.1MB)
ํ
์คํธ 12 ใ ํต๊ณผ (0.04ms, 10.2MB)
ํ
์คํธ 13 ใ ํต๊ณผ (0.08ms, 10.4MB)
ํ
์คํธ 14 ใ ํต๊ณผ (0.53ms, 10.2MB)
ํ
์คํธ 15 ใ ํต๊ณผ (0.30ms, 10.2MB)
ํ
์คํธ 16 ใ ํต๊ณผ (2.53ms, 10.2MB)
ํ
์คํธ 17 ใ ํต๊ณผ (0.51ms, 10.2MB)
ํ
์คํธ 18 ใ ํต๊ณผ (0.66ms, 10.2MB)
ํ
์คํธ 19 ใ ํต๊ณผ (2.26ms, 10.2MB)
ํ
์คํธ 20 ใ ํต๊ณผ (0.14ms, 10.1MB)
ํ
์คํธ 21 ใ ํต๊ณผ (6.79ms, 10.4MB)
ํ
์คํธ 22 ใ ํต๊ณผ (0.98ms, 10.2MB)
ํ
์คํธ 23 ใ ํต๊ณผ (0.37ms, 9.98MB)
ํ
์คํธ 24 ใ ํต๊ณผ (8.92ms, 10.3MB)
ํ
์คํธ 25 ใ ํต๊ณผ (2.98ms, 10.2MB)
ํ
์คํธ 26 ใ ํต๊ณผ (2.47ms, 10.2MB)
ํ
์คํธ 27 ใ ํต๊ณผ (0.83ms, 10.2MB)
'๊ฒ์ ํ๋ก๊ทธ๋๋ฐ > Python ํ๋ก๊ทธ๋๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค 2๋ ๋ฒจ ๋ฌธ์ ์์ ๊ฐ์ฅ ์ด๋ ค์ด ๋ฌธ์ ... (0) | 2023.08.08 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค LV2 ๊ณผ์ ์งํํ๊ธฐ (0) | 2023.08.04 |
ํ๋ก๊ทธ๋๋จธ์ค ๋จ์ 2๋ ๋ฒจ ๋ฌธ์ ๋ง๋ฌด๋ฆฌ ํ๊ธฐ (0) | 2023.07.16 |
ํ์ด์ฌ Base64 ์ธ์ฝ๋ฉ/๋์ฝ๋ฉ ์ํ์ฝ๋ (0) | 2023.07.12 |
ํ๋ก๊ทธ๋๋จธ์ค LV2 ์๊ฒฉ ์์คํ = ๋จ์์นด๋ฉ๋ผ (0) | 2023.06.28 |