J1Yun
ZU-TECHLOG
J1Yun
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๐Ÿ“‘ Category (135)
    • Algorithm (61)
      • ๐Ÿ“š Concept (6)
      • ๐Ÿ“˜ Baekjoon Judge (53)
      • ๐Ÿ“— Programmers (2)
    • Computer Science (42)
      • ๐Ÿ”’ Operating System (14)
      • ๐Ÿ“ก Network (15)
      • ๐Ÿ’พ Database (8)
      • ๐Ÿงฉ Design Pattern (4)
      • ๐Ÿ”‘ Security (1)
    • Activities (12)
      • ๐Ÿฆ ๋ฉ‹์Ÿ์ด์‚ฌ์ž์ฒ˜๋Ÿผ 9๊ธฐ (6)
      • ๐Ÿ’ป SW๋งˆ์—์ŠคํŠธ๋กœ 13๊ธฐ (6)
    • Infra (1)
      • โ˜๏ธ AWS (1)
    • Languages (1)
      • ๐Ÿ’™ Python (1)
    • Backend (7)
      • ๐Ÿ”ต Django (4)
      • ๐ŸŸข Node.js (3)
    • Ect. (8)
      • ๐Ÿ’ฌ Talk (0)
      • ๐Ÿ—‚๏ธ ๊ฐœ๋ฐœ์ง๊ตฐ ์ทจ์—… ์ค€๋น„์ž๋ฃŒ (8)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

250x250
hELLO ยท Designed By ์ •์ƒ์šฐ.
J1Yun

ZU-TECHLOG

[BOJ] ๋ฐฑ์ค€ 14499๋ฒˆ ์ฃผ์‚ฌ์œ„ ๊ตด๋ฆฌ๊ธฐ - ํŒŒ์ด์ฌ(Python)
Algorithm/๐Ÿ“˜ Baekjoon Judge

[BOJ] ๋ฐฑ์ค€ 14499๋ฒˆ ์ฃผ์‚ฌ์œ„ ๊ตด๋ฆฌ๊ธฐ - ํŒŒ์ด์ฌ(Python)

728x90

๋ฌธ์ œ

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

  2
4 1 3
  5
  6

์ฃผ์‚ฌ์œ„๋Š” ์ง€๋„ ์œ„์— ์œ— ๋ฉด์ด 1์ด๊ณ , ๋™์ชฝ์„ ๋ฐ”๋ผ๋ณด๋Š” ๋ฐฉํ–ฅ์ด 3์ธ ์ƒํƒœ๋กœ ๋†“์—ฌ์ ธ ์žˆ์œผ๋ฉฐ, ๋†“์—ฌ์ ธ ์žˆ๋Š” ๊ณณ์˜ ์ขŒํ‘œ๋Š” (x, y) ์ด๋‹ค. ๊ฐ€์žฅ ์ฒ˜์Œ์— ์ฃผ์‚ฌ์œ„์—๋Š” ๋ชจ๋“  ๋ฉด์— 0์ด ์ ํ˜€์ ธ ์žˆ๋‹ค.

์ง€๋„์˜ ๊ฐ ์นธ์—๋Š” ์ •์ˆ˜๊ฐ€ ํ•˜๋‚˜์”ฉ ์“ฐ์—ฌ์ ธ ์žˆ๋‹ค. ์ฃผ์‚ฌ์œ„๋ฅผ ๊ตด๋ ธ์„ ๋•Œ, ์ด๋™ํ•œ ์นธ์— ์“ฐ์—ฌ ์žˆ๋Š” ์ˆ˜๊ฐ€ 0์ด๋ฉด, ์ฃผ์‚ฌ์œ„์˜ ๋ฐ”๋‹ฅ๋ฉด์— ์“ฐ์—ฌ ์žˆ๋Š” ์ˆ˜๊ฐ€ ์นธ์— ๋ณต์‚ฌ๋œ๋‹ค. 0์ด ์•„๋‹Œ ๊ฒฝ์šฐ์—๋Š” ์นธ์— ์“ฐ์—ฌ ์žˆ๋Š” ์ˆ˜๊ฐ€ ์ฃผ์‚ฌ์œ„์˜ ๋ฐ”๋‹ฅ๋ฉด์œผ๋กœ ๋ณต์‚ฌ๋˜๋ฉฐ, ์นธ์— ์“ฐ์—ฌ ์žˆ๋Š” ์ˆ˜๋Š” 0์ด ๋œ๋‹ค.

์ฃผ์‚ฌ์œ„๋ฅผ ๋†“์€ ๊ณณ์˜ ์ขŒํ‘œ์™€ ์ด๋™์‹œํ‚ค๋Š” ๋ช…๋ น์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ฃผ์‚ฌ์œ„๊ฐ€ ์ด๋™ํ–ˆ์„ ๋•Œ ๋งˆ๋‹ค ์ƒ๋‹จ์— ์“ฐ์—ฌ ์žˆ๋Š” ๊ฐ’์„ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

์ฃผ์‚ฌ์œ„๋Š” ์ง€๋„์˜ ๋ฐ”๊นฅ์œผ๋กœ ์ด๋™์‹œํ‚ฌ ์ˆ˜ ์—†๋‹ค. ๋งŒ์•ฝ ๋ฐ”๊นฅ์œผ๋กœ ์ด๋™์‹œํ‚ค๋ ค๊ณ  ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ํ•ด๋‹น ๋ช…๋ น์„ ๋ฌด์‹œํ•ด์•ผ ํ•˜๋ฉฐ, ์ถœ๋ ฅ๋„ ํ•˜๋ฉด ์•ˆ ๋œ๋‹ค.

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ์ง€๋„์˜ ์„ธ๋กœ ํฌ๊ธฐ N, ๊ฐ€๋กœ ํฌ๊ธฐ M (1 ≤ N, M ≤ 20), ์ฃผ์‚ฌ์œ„๋ฅผ ๋†“์€ ๊ณณ์˜ ์ขŒํ‘œ x, y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), ๊ทธ๋ฆฌ๊ณ  ๋ช…๋ น์˜ ๊ฐœ์ˆ˜ K (1 ≤ K ≤ 1,000)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.

๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ์ง€๋„์— ์“ฐ์—ฌ ์žˆ๋Š” ์ˆ˜๊ฐ€ ๋ถ์ชฝ๋ถ€ํ„ฐ ๋‚จ์ชฝ์œผ๋กœ, ๊ฐ ์ค„์€ ์„œ์ชฝ๋ถ€ํ„ฐ ๋™์ชฝ ์ˆœ์„œ๋Œ€๋กœ ์ฃผ์–ด์ง„๋‹ค. ์ฃผ์‚ฌ์œ„๋ฅผ ๋†“์€ ์นธ์— ์“ฐ์—ฌ ์žˆ๋Š” ์ˆ˜๋Š” ํ•ญ์ƒ 0์ด๋‹ค. ์ง€๋„์˜ ๊ฐ ์นธ์— ์“ฐ์—ฌ ์žˆ๋Š” ์ˆ˜๋Š” 10 ๋ฏธ๋งŒ์˜ ์ž์—ฐ์ˆ˜ ๋˜๋Š” 0์ด๋‹ค.

๋งˆ์ง€๋ง‰ ์ค„์—๋Š” ์ด๋™ํ•˜๋Š” ๋ช…๋ น์ด ์ˆœ์„œ๋Œ€๋กœ ์ฃผ์–ด์ง„๋‹ค. ๋™์ชฝ์€ 1, ์„œ์ชฝ์€ 2, ๋ถ์ชฝ์€ 3, ๋‚จ์ชฝ์€ 4๋กœ ์ฃผ์–ด์ง„๋‹ค.

์ถœ๋ ฅ

์ด๋™ํ•  ๋•Œ๋งˆ๋‹ค ์ฃผ์‚ฌ์œ„์˜ ์œ— ๋ฉด์— ์“ฐ์—ฌ ์žˆ๋Š” ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ๋งŒ์•ฝ ๋ฐ”๊นฅ์œผ๋กœ ์ด๋™์‹œํ‚ค๋ ค๊ณ  ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ํ•ด๋‹น ๋ช…๋ น์„ ๋ฌด์‹œํ•ด์•ผ ํ•˜๋ฉฐ, ์ถœ๋ ฅ๋„ ํ•˜๋ฉด ์•ˆ ๋œ๋‹ค.

 

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

 

14499๋ฒˆ: ์ฃผ์‚ฌ์œ„ ๊ตด๋ฆฌ๊ธฐ

์ฒซ์งธ ์ค„์— ์ง€๋„์˜ ์„ธ๋กœ ํฌ๊ธฐ N, ๊ฐ€๋กœ ํฌ๊ธฐ M (1 ≤ N, M ≤ 20), ์ฃผ์‚ฌ์œ„๋ฅผ ๋†“์€ ๊ณณ์˜ ์ขŒํ‘œ x, y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), ๊ทธ๋ฆฌ๊ณ  ๋ช…๋ น์˜ ๊ฐœ์ˆ˜ K (1 ≤ K ≤ 1,000)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ์ง€

www.acmicpc.net

 

๐Ÿ’ก ํ’€์ด ๋ฐ ์ฝ”๋“œ

n, m, x, y, k = map(int, input().split())
data = []
for _ in range(n):
    data.append(list(map(int, input().split())))
command = list(map(int, input().split()))

dice = [0]*6
dx, dy = [0, 0, -1, 1], [1, -1, 0, 0]
result = []
for c in command:
    # ์ง€๋„ ์นธ ์œ ํšจ๋ฒ”์œ„ ํ™•์ธ
    nx, ny = x + dx[c-1], y + dy[c-1]
    if nx < 0 or nx >= n or ny < 0 or ny >= m:
        continue
    # ์ฃผ์‚ฌ์œ„ ๊ตด๋ฆฌ๊ธฐ
    if c <= 2:
        temp = [(3, dice[3]), (0, dice[0]), (2, dice[2]), (5, dice[5])]
    else:
        temp = [(1, dice[1]), (0, dice[0]), (4, dice[4]), (5, dice[5])]
    if c % 2:
        for i in range(1, 4):
            dice[temp[i][0]] = temp[i-1][1]
        dice[temp[0][0]] = temp[-1][1]
    else:
        for i in range(3):
            dice[temp[i][0]] = temp[i+1][1]
        dice[temp[-1][0]] = temp[0][1]
    # ์นธ์— ์ ํžŒ ์ˆ˜ ํ™•์ธ ํ›„ ์ฃผ์‚ฌ์œ„ ๋ฐ”๋‹ฅ๋ฉด๊ณผ ๋ณต์‚ฌ
    if data[nx][ny]:
        dice[-1] = data[nx][ny]
        data[nx][ny] = 0
    else:
        data[nx][ny] = dice[-1]
    # ํ˜„์žฌ ์ขŒํ‘œ ๊ฐฑ์‹  ๋ฐ ์ฃผ์‚ฌ์œ„ ์œ—๋ฉด ์ €์žฅ
    x, y = nx, ny
    result.append(dice[0])
# ๊ฒฐ๊ณผ ์ถœ๋ ฅ
for r in result:
    print(r)

์ด๋™ ํ•˜๋Š” ๋ช…๋ น์— ๋”ฐ๋ผ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

  1. ํ˜„์žฌ ์ขŒํ‘œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ด๋™ํ•œ ์นธ์˜ ์œ ํšจ ๋ฒ”์œ„ ํ™•์ธ
  2. ์ฃผ์‚ฌ์œ„๋ฅผ ๊ตด๋ ค ์ฃผ์‚ฌ์œ„ ์œ„์น˜๋ณ„ ๊ฐ’ ๋ณ€๊ฒฝ
  3. ์ง€๋„์˜ ์นธ์— ์ ํžŒ ์ˆ˜๋ฅผ ํ™•์ธํ•ด 0์ด๋ฉด ์ฃผ์‚ฌ์œ„ ๋ฐ”๋‹ฅ๋ฉด์—์„œ ์ด๋™ํ•œ ์นธ์œผ๋กœ ๋ณต์‚ฌ, 0์ด ์•„๋‹ˆ๋ฉด ์ด๋™ํ•œ ์นธ์—์„œ ์ฃผ์‚ฌ์œ„ ๋ฐ”๋‹ฅ๋ฉด์œผ๋กœ ๋ณต์‚ฌ ํ›„ ์นธ์€ 0์œผ๋กœ ์ €์žฅ
  4. ํ˜„์žฌ ์ขŒํ‘œ๊ฐ’์„ ๊ฐฑ์‹ ํ•˜๊ณ  ์ฃผ์‚ฌ์œ„ ์œ—๋ฉด์— ์ ํžŒ ๊ฐ’์„ ๋ฐฐ์—ด์— ์ €์žฅ
  5. ์ฃผ์‚ฌ์œ„ ์œ—๋ฉด์ด ์ ํžŒ ๋ฐฐ์—ด ์ถœ๋ ฅ

๊ตฌํ˜„์˜ ํ•ต์‹ฌ์€ ์ฃผ์‚ฌ์œ„๋ฅผ ๊ตด๋ ค ์ ์ ˆํ•˜๊ฒŒ ์ฃผ์‚ฌ์œ„ ์œ„์น˜๋ณ„ ๊ฐ’์„ ๋ณ€๊ฒฝํ•ด์ฃผ๋Š” ์ž‘์—…์ด๋‹ค. ํƒ€ ๋ธ”๋กœ๊ทธ์— ์ด๋ฅผ ์„ค๋ช…ํ•œ ๊ทธ๋ฆผ์ด ์žˆ์–ด ๊ฐ€์ ธ์™€ ์กฐ๊ธˆ ์ˆ˜์ •ํ–ˆ๋‹ค.

์œ„์™€ ๊ฐ™์ด ์ฃผ์‚ฌ์œ„๋ฅผ ๋™, ๋ถ, ์„œ, ๋‚จ ๋ฐฉํ–ฅ์œผ๋กœ ๊ตด๋ฆด ๋•Œ ๊ฐ ์ฃผ์‚ฌ์œ„ ์œ„์น˜๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ณ€ํ•˜๋Š”์ง€ ๊ทœ์น™์„ ์ฐพ์•„ ๊ตฌํ˜„ํ–ˆ๋‹ค. ๊ทธ์™ธ ๋‹ค๋ฅธ ์ž‘์—…์€ ํฌ๊ฒŒ ์–ด๋ ต์ง€ ์•Š๋‹ค.

728x90

'Algorithm > ๐Ÿ“˜ Baekjoon Judge' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[BOJ] ๋ฐฑ์ค€ 8980๋ฒˆ ํƒ๋ฐฐ - ํŒŒ์ด์ฌ(Python)  (0) 2022.07.04
[BOJ] ๋ฐฑ์ค€ 15683๋ฒˆ ๊ฐ์‹œ - ํŒŒ์ด์ฌ(Python)  (0) 2022.04.04
[BOJ] ๋ฐฑ์ค€ 20055๋ฒˆ ์ปจ๋ฒ ์ด์–ด ๋ฒจํŠธ ์œ„์˜ ๋กœ๋ด‡ - ํŒŒ์ด์ฌ(Python)  (0) 2022.04.01
[BOJ] ๋ฐฑ์ค€ 16234๋ฒˆ ์ธ๊ตฌ ์ด๋™ - ํŒŒ์ด์ฌ(Python)  (1) 2022.03.31
[BOJ] ๋ฐฑ์ค€ 14500๋ฒˆ ํ…ŒํŠธ๋กœ๋ฏธ๋…ธ - ํŒŒ์ด์ฌ(Python)  (0) 2022.03.31
    'Algorithm/๐Ÿ“˜ Baekjoon Judge' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€์ด๋‹ค
    • [BOJ] ๋ฐฑ์ค€ 8980๋ฒˆ ํƒ๋ฐฐ - ํŒŒ์ด์ฌ(Python)
    • [BOJ] ๋ฐฑ์ค€ 15683๋ฒˆ ๊ฐ์‹œ - ํŒŒ์ด์ฌ(Python)
    • [BOJ] ๋ฐฑ์ค€ 20055๋ฒˆ ์ปจ๋ฒ ์ด์–ด ๋ฒจํŠธ ์œ„์˜ ๋กœ๋ด‡ - ํŒŒ์ด์ฌ(Python)
    • [BOJ] ๋ฐฑ์ค€ 16234๋ฒˆ ์ธ๊ตฌ ์ด๋™ - ํŒŒ์ด์ฌ(Python)
    J1Yun
    J1Yun
    ๊ฐœ๋ฐœ ๊ด€๋ จ ๊ธฐ์ˆ  ๋ฐ ๊ณต๋ถ€ ๋‚ด์šฉ ๊ธฐ๋ก์žฅ

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