๋šœ๋ถ€๋‹ˆ์˜ Devlog

[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)
 

๋ธ”๋กœ๊ทธ์˜ ์ •๋ณด

๋šœ๋ถ€๋‹ˆ์˜ Devlog

๋šœ๋ถ€๋‹ˆ

ํ™œ๋™ํ•˜๊ธฐ