๋ฌธ์
https://www.acmicpc.net/problem/15685
ํ์ด
#๋ฐฑ์ค 15685๋ฒ ๋ฌธ์ - ๋๋๊ณค ์ปค๋ธ
import sys
input = sys.stdin.readline
n = int(input())
dx = [1,0,-1,0]
dy = [0,-1,0,1]
# ์ขํ๊ฐ ๋๋๊ณค ์ปค๋ธ์ ํฌํจ์ด ๋๋์ง ์ฒดํฌํด์ค ๋ฆฌ์คํธ
check = [[0] * (101) for _ in range(101)]
for _ in range(n):
x,y,d,g = map(int,input().split())
# ์ฃผ์ด์ง g์ธ๋๋์ ์์ง์ธ ๋ฐฉํฅ๋ค์ ๋ด์๋ ๋ฆฌ์คํธ
move_list = [d]
# ๋จผ์ ์์ํ๋ x,y ์ขํ๋ ๋ฐฉ๋ฌธ์ฒดํฌ
check[x][y] = 1
# ์ธ๋ ๋งํผ For๋ฌธ์ ๋๋ฆฌ๋ฉด์
for i in range(g):
tmp = []
# ์์์ธ๋ d๋ก ์ด๊ธฐํํ move_list์ ๊ธธ์ด๋ง ํผ for๋ฌธ์ ๋๋ฆฐ๋ค.
# ์์ผ๋ก ๊ณ์ ์ถ๊ฐํด์ค ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๊ธธ์ด๋ ๋์ด๋๋ค.
for j in range(len(move_list)):
# ์ด์ ์ธ๋๋ค์ ๋๋ฉด์ ๋ค์์ ๋ถํฐ ๋ฐฉํฅ์ 1์ฉ ๋ํ๊ณ 4๋ก ๋๋ ์ ๋ฐฉํฅ์
# tmp์ append ์ํจ๋ค.
tmp.append((move_list[-j-1]+1)%4)
# move_list ์ tmp๋ฅผ extend ์์ผ์ ๋ค์ ๊ทธ๋๋ก ๋ถ์ฌ์ค๋ค.
move_list.extend(tmp)
# g ์ธ๋ ๋งํผ ์คํํ ๋ค
# move_list์ ์๋ ๋ฐฉํฅ๋ค์ ํ์ธํ๋ฉด์ ์ขํ๋ฅผ ๊ณ์ฐํด์ฃผ๊ณ , check ์ฒ๋ฆฌ๋ฅผ ํด์ค๋ค.
for i in move_list:
nx = x + dx[i]
ny = y + dy[i]
check[nx][ny] = 1 # ์ฒดํฌ์ฒ๋ฆฌ
x,y = nx,ny # ๋ฐฉํฅ์ ํ์ฌ ์์ง์ธ ๋ฐฉํฅ์ผ๋ก ๊ฐฑ์
answer = 0
# 100,100 ์ขํ๋ฅผ ๋๋ฉด์ ํ ์ขํ๊ฐ 1๋ก ์ฒดํฌ๋์ด์์ ๋,
# ๋๋จธ์ง ์ค๋ฅธ์ชฝ, ์๋, ์ค๋ฅธ์ชฝ ์๋๋๊ฐ์ ์ด 1๋ก ์ฒดํฌ๋์ด์์ผ๋ฉด
# answer += 1 ์ ํด์ค๋ค.
for i in range(100):
for j in range(100):
if check[i][j] == 1 and check[i+1][j] == 1 and check[i][j+1] == 1 and check[i+1][j+1] == 1:
answer += 1
print(answer)
๊ท์น์ ์ฐพ๋๊ฒ ์ด๋ ค์ ๋ ๋ฌธ์ ์ด๋ค. ๊ตฌํ๋ ๊ฝค ์ด๋ ค์ ๊ณ ๋ค๋ฅธ ๋ธ๋ก๊ทธ์ ๋์์ ๋ฐ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์๋ค.
์ถ์ฒ
'๐๏ธ Algorithm > ๐ฉ ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐ฉ [๋ฐฑ์ค] [Java] [Silver5] 4673๋ฒ_์ ํ ๋๋ฒ (0) | 2023.12.07 |
---|---|
๐ฉ [๋ฐฑ์ค] [Python] [Silver1] 13335๋ฒ_ํธ๋ญ (0) | 2023.06.29 |
๐ฉ [๋ฐฑ์ค] [Python] [Gold5] 14719๋ฒ_๋น๋ฌผ (0) | 2023.06.21 |
๐ฉ [๋ฐฑ์ค] [Python] [Gold3] 14890๋ฒ_๊ฒฝ์ฌ๋ก (0) | 2023.06.19 |
๐ฉ [๋ฐฑ์ค] [Python] [Silver2] 2477๋ฒ_์ฐธ์ธ๋ฐญ (0) | 2023.06.16 |