[๋ฐฑ์ค€] 3190. ๋ฑ€/Python - Gold4

2025. 7. 30. 12:24ยทCoding Test/Algorithms

โ“๋ฌธ์ œ

https://www.acmicpc.net/problem/3190

์„ฑ๋Šฅ ์š”์•ฝ

๋ฉ”๋ชจ๋ฆฌ: 114200 KB, ์‹œ๊ฐ„: 148 ms

๋ถ„๋ฅ˜

๊ตฌํ˜„, ์ž๋ฃŒ ๊ตฌ์กฐ, ์‹œ๋ฎฌ๋ ˆ์ด์…˜, ๋ฑ, ํ

๋ฌธ์ œ ์„ค๋ช…

'Dummy' ๋ผ๋Š” ๋„์Šค๊ฒŒ์ž„์ด ์žˆ๋‹ค. ์ด ๊ฒŒ์ž„์—๋Š” ๋ฑ€์ด ๋‚˜์™€์„œ ๊ธฐ์–ด๋‹ค๋‹ˆ๋Š”๋ฐ, ์‚ฌ๊ณผ๋ฅผ ๋จน์œผ๋ฉด ๋ฑ€ ๊ธธ์ด๊ฐ€ ๋Š˜์–ด๋‚œ๋‹ค. ๋ฑ€์ด ์ด๋ฆฌ์ €๋ฆฌ ๊ธฐ์–ด๋‹ค๋‹ˆ๋‹ค๊ฐ€ ๋ฒฝ ๋˜๋Š” ์ž๊ธฐ์ž์‹ ์˜ ๋ชธ๊ณผ ๋ถ€๋”ชํžˆ๋ฉด ๊ฒŒ์ž„์ด ๋๋‚œ๋‹ค.

๊ฒŒ์ž„์€ NxN ์ •์‚ฌ๊ฐ ๋ณด๋“œ์œ„์—์„œ ์ง„ํ–‰๋˜๊ณ , ๋ช‡๋ช‡ ์นธ์—๋Š” ์‚ฌ๊ณผ๊ฐ€ ๋†“์—ฌ์ ธ ์žˆ๋‹ค. ๋ณด๋“œ์˜ ์ƒํ•˜์ขŒ์šฐ ๋์— ๋ฒฝ์ด ์žˆ๋‹ค. ๊ฒŒ์ž„์ด ์‹œ์ž‘ํ• ๋•Œ ๋ฑ€์€ ๋งจ์œ„ ๋งจ์ขŒ์ธก์— ์œ„์น˜ํ•˜๊ณ  ๋ฑ€์˜ ๊ธธ์ด๋Š” 1 ์ด๋‹ค. ๋ฑ€์€ ์ฒ˜์Œ์— ์˜ค๋ฅธ์ชฝ์„ ํ–ฅํ•œ๋‹ค.

๋ฑ€์€ ๋งค ์ดˆ๋งˆ๋‹ค ์ด๋™์„ ํ•˜๋Š”๋ฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ทœ์น™์„ ๋”ฐ๋ฅธ๋‹ค.

  • ๋จผ์ € ๋ฑ€์€ ๋ชธ๊ธธ์ด๋ฅผ ๋Š˜๋ ค ๋จธ๋ฆฌ๋ฅผ ๋‹ค์Œ์นธ์— ์œ„์น˜์‹œํ‚จ๋‹ค.
  • ๋งŒ์•ฝ ๋ฒฝ์ด๋‚˜ ์ž๊ธฐ์ž์‹ ์˜ ๋ชธ๊ณผ ๋ถ€๋”ชํžˆ๋ฉด ๊ฒŒ์ž„์ด ๋๋‚œ๋‹ค.
  • ๋งŒ์•ฝ ์ด๋™ํ•œ ์นธ์— ์‚ฌ๊ณผ๊ฐ€ ์žˆ๋‹ค๋ฉด, ๊ทธ ์นธ์— ์žˆ๋˜ ์‚ฌ๊ณผ๊ฐ€ ์—†์–ด์ง€๊ณ  ๊ผฌ๋ฆฌ๋Š” ์›€์ง์ด์ง€ ์•Š๋Š”๋‹ค.
  • ๋งŒ์•ฝ ์ด๋™ํ•œ ์นธ์— ์‚ฌ๊ณผ๊ฐ€ ์—†๋‹ค๋ฉด, ๋ชธ๊ธธ์ด๋ฅผ ์ค„์—ฌ์„œ ๊ผฌ๋ฆฌ๊ฐ€ ์œ„์น˜ํ•œ ์นธ์„ ๋น„์›Œ์ค€๋‹ค. ์ฆ‰, ๋ชธ๊ธธ์ด๋Š” ๋ณ€ํ•˜์ง€ ์•Š๋Š”๋‹ค.

์‚ฌ๊ณผ์˜ ์œ„์น˜์™€ ๋ฑ€์˜ ์ด๋™๊ฒฝ๋กœ๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ ์ด ๊ฒŒ์ž„์ด ๋ช‡ ์ดˆ์— ๋๋‚˜๋Š”์ง€ ๊ณ„์‚ฐํ•˜๋ผ.

โœ๐Ÿปํ’€์ด

ํ…Œ์ŠคํŠธ์ผ€์ด์Šค 3๋ฒˆ์„ ์‚ดํŽด๋ณด๋ฉด ๋ฑ€์€ ์œ„์™€ ๊ฐ™์ด ์›€์ง์ธ๋‹ค. 13์ดˆ์— ๋จธ๋ฆฌ๋ฅผ ์›€์ง์ด๋ฉด 12์ดˆ์ผ ๋•Œ ๊ผฌ๋ฆฌ๊ฐ€ 13์ดˆ์ผ ๋•Œ ๋จธ๋ฆฌ๊ฐ€ ์›€์ง์ด๋Š” ๋ฐฉํ–ฅ์— ์žˆ์œผ๋ฏ€๋กœ ์ถฉ๋Œํ•˜์—ฌ ๋ฉˆ์ถ”๊ฒŒ ๋œ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๊ฒŒ์ž„์ด 13์ดˆ์— ์ข…๋ฃŒ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

๋ฐฉํ–ฅ ๋”ฐ๋ผ์„œ ๋ฑ€์ด ์›€์ง์ด๋ ค๋Š” ๋‹ค์Œ ์นธ์ด ๋ฒ”์œ„์—์„œ ๋ฒ—์–ด๋‚˜๊ฑฐ๋‚˜ ๋ชธํ†ต๊ณผ ๋งŒ๋‚˜๋ฉด while๋ฌธ์„ ์ค‘๋‹จ์‹œํ‚จ๋‹ค. ์ด๋•Œ ํ˜„์žฌ ์‹œ๊ฐ„+1์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๋ฒ—์–ด๋‚˜๊ฑฐ๋‚˜ ๋ถ€๋”ชํžˆ์ง€ ์•Š๋Š”๋‹ค๋ฉด ์‚ฌ๊ณผ๊ฐ€ ์žˆ๋Š” ์œ„์น˜์ธ์ง€ ์—†๋Š” ์œ„์น˜์ธ์ง€ ํ™•์ธํ•œ๋‹ค. ์‚ฌ๊ณผ๊ฐ€ ์—†๋Š” ์œ„์น˜๋ผ๋ฉด ๊ผฌ๋ฆฌ๋ฅผ ํ์—์„œ ๋บ€๋‹ค. ์‚ฌ๊ณผ๊ฐ€ ์žˆ๋‹ค๋ฉด ๋ฆฌ์ŠคํŠธ์—์„œ ์‚ฌ๊ณผ๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฑ€์˜ ํ˜„์žฌ ๋จธ๋ฆฌ ์œ„์น˜๋ฅผ ํ์— ๋„ฃ๊ณ  ์‹œ๊ฐ„์„ +1 ํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ์‹œ๊ฐ„์— +1์„ ํ•˜๋‹ค๋ณด๋ฉด ๋ฑ€์˜ ๋ฐฉํ–ฅ ์ „ํ™˜ ์‹œ๊ฐ„์ด ๋œ๋‹ค. ๋ฑ€์˜ ๋ฐฉํ–ฅ ์ „ํ™˜ ์‹œ๊ฐ„์— ์žˆ๋Š” ๋ฐฉํ–ฅ์— ๋”ฐ๋ผ ๋จธ๋ฆฌ๋Š” ์˜ค๋ฅธ์ชฝ๊ณผ ์™ผ์ชฝ์œผ๋กœ ๋Œ๋ฆฌ๋ฉด ๋œ๋‹ค.

๐Ÿ’ป์ฝ”๋“œ

import sys
from collections import deque

input = sys.stdin.readline

N = int(input())
K = int(input())
apples = [list(map(int, input().split())) for _ in range(K)]
L = int(input())
turns = deque([input().split() for _ in range(L)]) # X์ดˆ๊ฐ€ ๋๋‚œ ๋’ค์— ๋ฑ€์ด C ๋ฐฉํ–ฅ์œผ๋กœ 90๋„ ํšŒ์ „.
# ๋ฐฉํ–ฅ ์ „ํ™˜ D = ์˜ค๋ฅธ์ชฝ, L = ์™ผ์ชฝ
rotate = {'D': 1, 'L': -1}
# ๋ถ, ๋™, ๋‚จ, ์„œ
dy = [-1, 0, 1, 0]
dx = [0, 1, 0, -1]

def OutOfRange(y, x):
    return False if 0 < y <= N and 0 < x <= N else True

def game(y, x, d):
    t = 0
    move = deque([(y, x)])
    while True:
        ny, nx = y + dy[d], x + dx[d]
        if OutOfRange(ny, nx) or (ny, nx) in move: # ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚˜๋ฉด ๋ฉˆ์ถค.
            break

        if [ny, nx] not in apples: # ์‚ฌ๊ณผ๊ฐ€ ์—†๋‹ค๋ฉด ๊ผฌ๋ฆฌ ์ œ๊ฑฐ
            move.popleft()
        else:
            apples.remove([ny, nx])
            
        y, x = ny, nx
        move.append((ny, nx))
        t += 1

        if turns and t == int(turns[0][0]):
            turn = turns.popleft()[1]
            d = (d + rotate[turn]) % 4 # ์™ผ์ชฝ ๋˜๋Š” ์˜ค๋ฅธ์ชฝ์œผ๋กœ 90๋„ ํšŒ์ „.

    return t+1

print(game(1, 1, 1)) # ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํ–ฅํ•œ๋‹ค๊ณ  ํ•˜์˜€์œผ๋ฏ€๋กœ ๋ฐฉํ–ฅ์„ 1๋กœ ํ•จ.

๐Ÿ“ํ›„๊ธฐ

๋ฌธ์ œ๋ฅผ ์ž˜๋ชป ์ดํ•ดํ•ด์„œ ๋จธ๋ฆฌ๋ž‘ ๋ชธ์ด ์™œ ๋ถ€๋”ชํžˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์™œ ์ƒ๊ธฐ๋Š”์ง€ ์˜๋ฌธ์ด์—ˆ๋‹ค. ์‚ฌ๊ณผ๋ฅผ ๋จน์œผ๋ฉด ๋ฑ€์˜ ๊ธธ์ด๊ฐ€ ๋Š˜์–ด๋‚˜๊ธฐ ๋•Œ๋ฌธ์ด๋ผ๋Š” ๊ฑธ ๋’ค๋Šฆ๊ฒŒ ์•Œ์•„์„œ ์ข€ ๋งŽ์ด ํ—ค๋งจ ๋ฌธ์ œ์˜€๋‹ค...
๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์˜ ํ’€์ด๋ฅผ ๋ณด๋ฉด 2์ฐจ์› ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด์„œ ๋ฑ€์ด ์ง€๋‚˜๊ฐ€๋Š” ๊ฒƒ๊ณผ ์‚ฌ๊ณผ๊ฐ€ ์œ ๋ฌด๋ฅผ ํ‘œ์‹œํ•˜์˜€๋Š”๋ฐ ๊ตณ์ด ๊ทธ๋Ÿด ํ•„์š”๊ฐ€ ์—†๋Š” ๋ฌธ์ œ๋‹ค. ๋‹ค๋งŒ, ์˜คํžˆ๋ ค ๊ธฐ์กด ์‚ฌ๊ณผ๊ฐ€ ์žˆ๋Š” ๋ฐฐ์—ด์—์„œ ์‚ฌ๊ณผ๋ฅผ ๋จน๊ณ  ์ง€์šฐ๋Š” ๊ฒƒ์ด ์‹œ๊ฐ„์ด ๋” ๊ฑธ๋ฆด ์ˆ˜๋„ ์žˆ๋‹ค. ์ด ๋ถ€๋ถ„์€ ํ™•์ธํ•˜์ง€ ๋ชปํ•˜์˜€์œผ๋‹ˆ ๊ถ๊ธˆํ•˜๋‹ค๋ฉด ๊ฐœ์ธ์ ์œผ๋กœ ์ฐพ์•„๋ณด๊ธธ...

'Coding Test > Algorithms' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[๋ฐฑ์ค€] 14502. ์—ฐ๊ตฌ์†Œ/Python - Gold4  (0) 2025.08.03
[๋ฐฑ์ค€] 14499. ์ฃผ์‚ฌ์œ„ ๊ตด๋ฆฌ๊ธฐ/Python - Gold4  (4) 2025.08.02
[๋ฐฑ์ค€] 14503. ๋กœ๋ด‡ ์ฒญ์†Œ๊ธฐ/Python - Gold5  (1) 2025.07.29
[๋ฐฑ์ค€] 14891. ํ†ฑ๋‹ˆ๋ฐ”ํ€ด/Python - Gold5  (2) 2025.07.25
[๋ฐฑ์ค€] 14501. ํ‡ด์‚ฌ/Python - Silver3  (1) 2025.07.23
'Coding Test/Algorithms' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [๋ฐฑ์ค€] 14502. ์—ฐ๊ตฌ์†Œ/Python - Gold4
  • [๋ฐฑ์ค€] 14499. ์ฃผ์‚ฌ์œ„ ๊ตด๋ฆฌ๊ธฐ/Python - Gold4
  • [๋ฐฑ์ค€] 14503. ๋กœ๋ด‡ ์ฒญ์†Œ๊ธฐ/Python - Gold5
  • [๋ฐฑ์ค€] 14891. ํ†ฑ๋‹ˆ๋ฐ”ํ€ด/Python - Gold5
The Engineer, Lucy
The Engineer, Lucy
  • The Engineer, Lucy
    Growing up for My Future๐Ÿ’•
    The Engineer, Lucy
    • Instagram
    • GitHub
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (171) N
      • Linux (26)
      • Infra (9)
      • Cloud (25)
        • AWS (2)
        • GCP (3)
        • Docker (4)
        • Kubernetes (14)
        • IaC (2)
      • NGINX (1)
      • DevOps (3)
      • Computer Science (17)
        • Data Structure (0)
        • Algorithms (1)
        • Operating System (3)
        • Network (11)
        • Database System (2)
      • Coding Test (85) N
        • Algorithms (77) N
        • SQL (7)
      • ETC (5)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๊ณต์ง€์‚ฌํ•ญ

  • ๋งํฌ

    • Lucy's Instagram
    • Lucy's GitHub
  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ๋„ˆ๋น„์šฐ์„ ํƒ์ƒ‰
    cs ๊ธฐ์ดˆ ์ง€์‹ ์ •๋ฆฌ
    ์ž๋ฐ”
    ์‰˜ ์Šคํฌ๋ฆฝํŠธ
    ๋„์ปค
    ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๊ณต๋ถ€
    Linux
    Java
    ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ
    dfs
    ๋ฆฌ๋ˆ…์Šค๋งˆ์Šคํ„ฐ 2๊ธ‰
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
    bfs
    network
    ํ‹ฐ์Šคํ† ๋ฆฌ์ฑŒ๋ฆฐ์ง€
    ๋ฆฌ๋ˆ…์Šค๋งˆ์Šคํ„ฐ
    ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค
    Shell Script
    K8s
    ์˜ค๋ธ”์™„
    programmers
    ๋„คํŠธ์›Œํฌ
    ๋ฆฌ๋ˆ…์Šค
    Baekjoon
    ๋ฐฑ์ค€
    ๋„คํŠธ์›Œํฌ ๊ธฐ์ดˆ ์ง€์‹
    ์…ธ ์Šคํฌ๋ฆฝํŠธ
    docker
    Shell
    Kubernetes
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
The Engineer, Lucy
[๋ฐฑ์ค€] 3190. ๋ฑ€/Python - Gold4
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”