ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [๋ฐฑ์ค€] 14499 ์ฃผ์‚ฌ์œ„ ๊ตด๋ฆฌ๊ธฐ with Python
    PS 2022. 6. 14. 16:24
    728x90
    ๋ฐ˜์‘ํ˜•

    ๐Ÿ“Œ BOJ 14499 ์ฃผ์‚ฌ์œ„ ๊ตด๋ฆฌ๊ธฐ

    ๐Ÿ’ก ์กฐ๊ฑด

    1. ํฌ๊ธฐ๊ฐ€ Nร—M์ธ ์ง€๋„๊ฐ€ ์กด์žฌํ•œ๋‹ค. ์ง€๋„์˜ ์˜ค๋ฅธ์ชฝ์€ ๋™์ชฝ, ์œ„์ชฝ์€ ๋ถ์ชฝ์ด๋‹ค.
      ์ด ์ง€๋„์˜ ์œ„์— ์ฃผ์‚ฌ์œ„๊ฐ€ ํ•˜๋‚˜ ๋†“์—ฌ์ ธ ์žˆ์œผ๋ฉฐ, ์ฃผ์‚ฌ์œ„์˜ ์ „๊ฐœ๋„๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.
      ์ง€๋„์˜ ์ขŒํ‘œ๋Š” (r, c)๋กœ ๋‚˜ํƒ€๋‚ด๋ฉฐ, r๋Š” ๋ถ์ชฝ์œผ๋กœ๋ถ€ํ„ฐ ๋–จ์–ด์ง„ ์นธ์˜ ๊ฐœ์ˆ˜, c๋Š” ์„œ์ชฝ์œผ๋กœ๋ถ€ํ„ฐ ๋–จ์–ด์ง„ ์นธ์˜ ๊ฐœ์ˆ˜์ด๋‹ค.

    1. ์ฃผ์‚ฌ์œ„๋Š” ์ง€๋„ ์œ„์— ์œ— ๋ฉด์ด 1์ด๊ณ , ๋™์ชฝ์„ ๋ฐ”๋ผ๋ณด๋Š” ๋ฐฉํ–ฅ์ด 3์ธ ์ƒํƒœ๋กœ ๋†“์—ฌ์ ธ ์žˆ์œผ๋ฉฐ,
      ๋†“์—ฌ์ ธ ์žˆ๋Š” ๊ณณ์˜ ์ขŒํ‘œ๋Š” (x, y) ์ด๋‹ค. ๊ฐ€์žฅ ์ฒ˜์Œ์— ์ฃผ์‚ฌ์œ„์—๋Š” ๋ชจ๋“  ๋ฉด์— 0์ด ์ ํ˜€์ ธ ์žˆ๋‹ค.
    1. ์ง€๋„์˜ ๊ฐ ์นธ์—๋Š” ์ •์ˆ˜๊ฐ€ ํ•˜๋‚˜์”ฉ ์“ฐ์—ฌ์ ธ ์žˆ๋‹ค.
      ์ฃผ์‚ฌ์œ„๋ฅผ ๊ตด๋ ธ์„ ๋•Œ, ์ด๋™ํ•œ ์นธ์— ์“ฐ์—ฌ ์žˆ๋Š” ์ˆ˜๊ฐ€ 0์ด๋ฉด, ์ฃผ์‚ฌ์œ„์˜ ๋ฐ”๋‹ฅ๋ฉด์— ์“ฐ์—ฌ ์žˆ๋Š” ์ˆ˜๊ฐ€ ์นธ์— ๋ณต์‚ฌ๋œ๋‹ค.
      0์ด ์•„๋‹Œ ๊ฒฝ์šฐ์—๋Š” ์นธ์— ์“ฐ์—ฌ ์žˆ๋Š” ์ˆ˜๊ฐ€ ์ฃผ์‚ฌ์œ„์˜ ๋ฐ”๋‹ฅ๋ฉด์œผ๋กœ ๋ณต์‚ฌ๋˜๋ฉฐ, ์นธ์— ์“ฐ์—ฌ ์žˆ๋Š” ์ˆ˜๋Š” 0์ด ๋œ๋‹ค.
    1. ์ฃผ์‚ฌ์œ„๋ฅผ ๋†“์€ ๊ณณ์˜ ์ขŒํ‘œ์™€ ์ด๋™์‹œํ‚ค๋Š” ๋ช…๋ น์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ฃผ์‚ฌ์œ„๊ฐ€ ์ด๋™ํ–ˆ์„ ๋•Œ ๋งˆ๋‹ค ์ƒ๋‹จ์— ์“ฐ์—ฌ ์žˆ๋Š” ๊ฐ’์„ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.
      ์ฃผ์‚ฌ์œ„๋Š” ์ง€๋„์˜ ๋ฐ”๊นฅ์œผ๋กœ ์ด๋™์‹œํ‚ฌ ์ˆ˜ ์—†๋‹ค. ๋งŒ์•ฝ ๋ฐ”๊นฅ์œผ๋กœ ์ด๋™์‹œํ‚ค๋ ค๊ณ  ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ํ•ด๋‹น ๋ช…๋ น์„ ๋ฌด์‹œํ•ด์•ผ ํ•˜๋ฉฐ, ์ถœ๋ ฅ๋„ ํ•˜๋ฉด ์•ˆ ๋œ๋‹ค.
    1. ์ฒซ์งธ ์ค„์— ์ง€๋„์˜ ์„ธ๋กœ ํฌ๊ธฐ N, ๊ฐ€๋กœ ํฌ๊ธฐ M (1 โ‰ค N, M โ‰ค 20),
      ์ฃผ์‚ฌ์œ„๋ฅผ ๋†“์€ ๊ณณ์˜ ์ขŒํ‘œ x, y(0 โ‰ค x โ‰ค N-1, 0 โ‰ค y โ‰ค M-1), ๊ทธ๋ฆฌ๊ณ  ๋ช…๋ น์˜ ๊ฐœ์ˆ˜ K (1 โ‰ค K โ‰ค 1,000)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.
    1. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ์ง€๋„์— ์“ฐ์—ฌ ์žˆ๋Š” ์ˆ˜๊ฐ€ ๋ถ์ชฝ๋ถ€ํ„ฐ ๋‚จ์ชฝ์œผ๋กœ, ๊ฐ ์ค„์€ ์„œ์ชฝ๋ถ€ํ„ฐ ๋™์ชฝ ์ˆœ์„œ๋Œ€๋กœ ์ฃผ์–ด์ง„๋‹ค.
      ์ฃผ์‚ฌ์œ„๋ฅผ ๋†“์€ ์นธ์— ์“ฐ์—ฌ ์žˆ๋Š” ์ˆ˜๋Š” ํ•ญ์ƒ 0์ด๋‹ค. ์ง€๋„์˜ ๊ฐ ์นธ์— ์“ฐ์—ฌ ์žˆ๋Š” ์ˆ˜๋Š” 10 ๋ฏธ๋งŒ์˜ ์ž์—ฐ์ˆ˜ ๋˜๋Š” 0์ด๋‹ค.
      ๋งˆ์ง€๋ง‰ ์ค„์—๋Š” ์ด๋™ํ•˜๋Š” ๋ช…๋ น์ด ์ˆœ์„œ๋Œ€๋กœ ์ฃผ์–ด์ง„๋‹ค. ๋™์ชฝ์€ 1, ์„œ์ชฝ์€ 2, ๋ถ์ชฝ์€ 3, ๋‚จ์ชฝ์€ 4๋กœ ์ฃผ์–ด์ง„๋‹ค.
    1. ๊ตฌํ˜„, ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์œ ํ˜•์˜ ๋ฌธ์ œ

    ๐Ÿ–ฅ ์†Œ์Šค ์ฝ”๋“œ

    from sys import stdin
    
    n, m, x, y, command_nums = map(int, stdin.readline().split())
    board = []
    for _ in range(n):
        board.append(list(map(int, stdin.readline().split())))
    
    command = list(map(int, stdin.readline().split()))
    
    dice = [0 for _ in range(6)]
    dice[0] = board[x][y]
    
    dx, dy = [0, 0, -1, 1], [1, -1, 0, 0]
    for c in command:
        nx, ny = x + dx[c - 1], y + dy[c - 1]
        if 0 <= nx < n and 0 <= ny < m:
            if c == 1:
                dice[4], dice[5], dice[2], dice[0] = dice[0], dice[4], dice[5], dice[2]
    
            elif c == 2:
                dice[2], dice[5], dice[4], dice[0] = dice[0], dice[2], dice[5], dice[4]
    
            elif c == 3:
                dice[1], dice[5], dice[3], dice[0] = dice[0], dice[1], dice[5], dice[3]
    
            elif c == 4:
                dice[3], dice[5], dice[1], dice[0] = dice[0], dice[3], dice[5], dice[1]
    
            if board[nx][ny] == 0:
                board[nx][ny] = dice[0]
    
            else:
                dice[0] = board[nx][ny]
                board[nx][ny] = 0
    
            x, y = nx, ny
            print(dice[5])

    ๐Ÿ”– ์˜ˆ์ œ ๋ฐ ์‹คํ–‰๊ฒฐ๊ณผ

    ์˜ˆ์ œ

    3 3 0 0 16
    0 1 2
    3 4 5
    6 7 8
    4 4 1 1 3 3 2 2 4 4 1 1 3 3 2 2

    ์‹คํ–‰๊ฒฐ๊ณผ

    0
    0
    0
    6
    0
    8
    0
    2
    0
    8
    0
    2
    0
    8
    0
    2

    โŒจ๏ธ ๋ฌธ์ œ ํ’€์ด

    1. ๋ฌธ์ œ์—์„œ ์š”๊ตฌํ•œ ๋Œ€๋กœ ํ’€๋ฉด ๋˜๋Š” ๊ตฌํ˜„๋ฌธ์ œ์ด๋‹ค.

    ๐Ÿ’พ ๋ฐฐ์šด์ 

    1. ๋”๋Ÿฌ์›Œ..
    ๋ฐ˜์‘ํ˜•

    ๋Œ“๊ธ€

Designed by Tistory.