[BOJ] 15685.๋๋๊ณค์ปค๋ธ (Python)
by ๋๋ถ๋
15685๋ฒ: ๋๋๊ณค ์ปค๋ธ
์ฒซ์งธ ์ค์ ๋๋๊ณค ์ปค๋ธ์ ๊ฐ์ N(1 ≤ N ≤ 20)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ ๋๋๊ณค ์ปค๋ธ์ ์ ๋ณด๊ฐ ์ฃผ์ด์ง๋ค. ๋๋๊ณค ์ปค๋ธ์ ์ ๋ณด๋ ๋ค ์ ์ x, y, d, g๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. x์ y๋ ๋๋๊ณค ์ปค
www.acmicpc.net
๋๋๊ณค ์ปค๋ธ๋ x = ํ, y = ์ด, d = ๋ฐฉํฅ, g = ์ธ๋๋ก ์ด๋ฃจ์ด์ ธ์์ต๋๋ค.
0์ธ๋๋ ๊ธธ์ด๊ฐ 1์ธ ์ ๋ถ์ด๊ณ , 1์ธ๋๋ 0์ธ๋๋ฅผ ์๊ฒ๋ฐฉํฅ์ผ๋ก 90๋ ๋๋ ค์ ๋์ ์ ๋ถ์ธ ํํ์ ๋๋ค.
์ด๋ฐ ์์ผ๋ก g์ธ๋๋ (g-1)์ธ๋๋ฅผ ์๊ณ๋ฐฉํฅ์ผ๋ก 90๋ ๋๋ฆฐ ํ ๋์ ์ ๋ถ์ด๋ฉฐ ์งํ๋ฉ๋๋ค.
์ฆ, g์ธ๋๋ฅผ ์๋ ค๋ฉด ๊ทธ ์ ์ธ๋์ ๋ํด ๊ฑฐ๊พธ๋ก ์ด์ด๋ถ์ธ ํํ์ ๋๋ค.
๋ฐฉํฅ์ ๋ค์๊ณผ ๊ฐ์ด ์ฃผ์ด์ง๋๋ค.
- 0: x์ขํ๊ฐ ์ฆ๊ฐํ๋ ๋ฐฉํฅ (→)
- 1: y์ขํ๊ฐ ๊ฐ์ํ๋ ๋ฐฉํฅ (↑)
- 2: x์ขํ๊ฐ ๊ฐ์ํ๋ ๋ฐฉํฅ (←)
- 3: y์ขํ๊ฐ ์ฆ๊ฐํ๋ ๋ฐฉํฅ (↓)
ํฌ๊ธฐ๊ฐ 1×1์ธ ์ ์ฌ๊ฐํ์ ๋ค ๊ผญ์ง์ ์ด ๋ชจ๋ ๋๋๊ณค ์ปค๋ธ์ ์ผ๋ถ์ธ ๊ฒ์ ๊ฐ์๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
# ๋๋๊ณค ์ปค๋ธ
import sys
input = sys.stdin.readline
def curve(x, y, d, g) :
curve_list = [d] # ์ด๋ ๋ฐฉํฅ ๋ฆฌ์คํธ
for _ in range(g) :
curve_len = len(curve_list)
for i in range(curve_len-1, -1, -1) :
curve_list.append((curve_list[i]+1)%4)
matrix[x][y] = 1
for c in curve_list :
x, y = x + dist[c][0], y + dist[c][1]
if matrix[x][y] == 0 : matrix[x][y] = 1
return matrix
if __name__=="__main__" :
matrix = [[0]*101 for _ in range(101)]
N = int(input())
dist = [(1, 0), (0, -1), (-1, 0), (0, 1)]
for _ in range(N) :
x, y, d, g = map(int, input().split())
matrix = curve(x, y, d, g)
cnt = 0
for r in range(100) :
for c in range(100) :
if matrix[r][c] and matrix[r][c+1] and matrix[r+1][c] and matrix[r+1][c+1] :
cnt += 1
print(cnt)
'Algorithm > BOJ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ] 5052.์ ํ๋ฒํธ ๋ชฉ๋ก (Java) (0) | 2021.04.30 |
---|---|
[BOJ] 11720.์ซ์์ ํฉ (Java) (0) | 2021.04.27 |
[BOJ] 17406.๋ฐฐ์ด๋๋ฆฌ๊ธฐ4 (0) | 2021.04.22 |
[BOJ] 15686.์นํจ๋ฐฐ๋ฌ (Python) (0) | 2021.04.22 |
[BOJ] 17140.์ด์ฐจ์๋ฐฐ์ด๊ณผ ์ฐ์ฐ (Python) (0) | 2021.04.21 |
๋ธ๋ก๊ทธ์ ์ ๋ณด
๋๋ถ๋์ Devlog
๋๋ถ๋