Algorithm

[๋ฐฑ์ค€] 2564. ๊ฒฝ๋น„์› python

๐Ÿณ ๋งํฌ

๋ฐฑ์ค€ ๊ฒฝ๋น„์›

๐Ÿ• ๋ฌธ์ œ

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

์˜ˆ๋ฅผ ๋“ค์–ด ๊ฐ€๋กœ์˜ ๊ธธ์ด๊ฐ€ 10, ์„ธ๋กœ์˜ ๊ธธ์ด๊ฐ€ 5์ธ ๋ธ”๋ก์˜ ๊ฒฝ๊ณ„์— ๋ฌด์ธ ๊ฒฝ๋น„๋ฅผ ์˜๋ขฐํ•œ 3๊ฐœ์˜ ์ƒ์ ์ด ์žˆ๋‹ค๊ณ  ํ•˜์ž. <๊ทธ๋ฆผ 1>๊ณผ ๊ฐ™์ด ์ด๋“ค์€ 1, 2, 3์œผ๋กœ ํ‘œ์‹œ๋˜์–ด ์žˆ๊ณ , ๋™๊ทผ์ด๋Š” X๋กœ ํ‘œ์‹œํ•œ ์œ„์น˜์— ์žˆ๋‹ค.

1๋ฒˆ ์ƒ์ ์—์„œ ํ˜ธ์ถœ์ด ๋“ค์–ด ์™”์„ ๋•Œ ๋™๊ทผ์ด๊ฐ€ ๋ธ”๋ก์„ ์‹œ๊ณ„๋ฐฉํ–ฅ์œผ๋กœ ๋Œ์•„ ์ด๋™ํ•˜๋ฉด ์ด๋™ ๊ฑฐ๋ฆฌ๊ฐ€ 12๊ฐ€ ๋œ๋‹ค. ๋ฐ˜๋ฉด ๋ฐ˜์‹œ๊ณ„๋ฐฉํ–ฅ์œผ๋กœ ๋Œ์•„ ์ด๋™ํ•˜๋ฉด ์ด๋™ ๊ฑฐ๋ฆฌ๋Š” 18์ด ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ๋™๊ทผ์ด๊ฐ€ 1๋ฒˆ ์ƒ์ ์œผ๋กœ ๊ฐ€๋Š” ์ตœ๋‹จ ๊ฑฐ๋ฆฌ๋Š” 12๊ฐ€ ๋œ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋™๊ทผ์ด์˜ ์œ„์น˜์—์„œ 2๋ฒˆ ์ƒ์ ๊นŒ์ง€์˜ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ๋Š” 6, 3๋ฒˆ ์ƒ์ ๊นŒ์ง€์˜ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ๋Š” 5๊ฐ€ ๋œ๋‹ค.

๋ธ”๋ก์˜ ํฌ๊ธฐ์™€ ์ƒ์ ์˜ ๊ฐœ์ˆ˜ ๋ฐ ์œ„์น˜ ๊ทธ๋ฆฌ๊ณ  ๋™๊ทผ์ด์˜ ์œ„์น˜๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ ๋™๊ทผ์ด์˜ ์œ„์น˜์™€ ๊ฐ ์ƒ์  ์‚ฌ์ด์˜ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ์˜ ํ•ฉ์„ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

๐Ÿพ ํ’€์ด ๋ฐฉ๋ฒ•

๊ฒ๋‚˜ ์‰ฌ์šด ๋ฌธ์ œ๊ฐ™์•˜์ง€๋งŒ... ์€๊ทผํžˆ ์–ด๋ ค์› ๋‹ค ๐Ÿ˜…
์ž…๋ ฅ์ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฃผ์–ด์ง€๋Š”๋ฐ,

10 5 #๊ฐ€๋กœ ์„ธ๋กœ
3 #์ƒ์ ์˜ ๊ฐœ์ˆ˜
1 4 #๋ฐฉํ–ฅ, ๊ฑฐ๋ฆฌ
3 2 #๋ฐฉํ–ฅ, ๊ฑฐ๋ฆฌ
2 8
2 3 #๋™๊ทผ์ด์˜ ๋ฐฉํ–ฅ, ๊ฑฐ๋ฆฌ

์ด ๋ฌธ์ œ๋Š” ์ž…๋ ฅ์— ๋Œ€ํ•œ ์„ค๋ช…์ด ์ค‘์š”ํ•ด์„œ ๊ฐ€์ ธ์™€๋ณด์•˜๋‹ค.

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ๋ธ”๋ก์˜ ๊ฐ€๋กœ์˜ ๊ธธ์ด์™€ ์„ธ๋กœ์˜ ๊ธธ์ด๊ฐ€ ์ฐจ๋ก€๋กœ ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„์— ์ƒ์ ์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋ธ”๋ก์˜ ๊ฐ€๋กœ์˜ ๊ธธ์ด์™€ ์„ธ๋กœ์˜ ๊ธธ์ด, ์ƒ์ ์˜ ๊ฐœ์ˆ˜๋Š” ๋ชจ๋‘ 100์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ด๋‹ค. ์ด์–ด ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ƒ์ ์˜ ์œ„์น˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ƒ์ ์˜ ์œ„์น˜๋Š” ๋‘ ๊ฐœ์˜ ์ž์—ฐ์ˆ˜๋กœ ํ‘œ์‹œ๋œ๋‹ค. ์ฒซ์งธ ์ˆ˜๋Š” ์ƒ์ ์ด ์œ„์น˜ํ•œ ๋ฐฉํ–ฅ์„ ๋‚˜ํƒ€๋‚ด๋Š”๋ฐ, 1์€ ๋ธ”๋ก์˜ ๋ถ์ชฝ, 2๋Š” ๋ธ”๋ก์˜ ๋‚จ์ชฝ, 3์€ ๋ธ”๋ก์˜ ์„œ์ชฝ, 4๋Š” ๋ธ”๋ก์˜ ๋™์ชฝ์— ์ƒ์ ์ด ์žˆ์Œ์„ ์˜๋ฏธํ•œ๋‹ค. ๋‘˜์งธ ์ˆ˜๋Š” ์ƒ์ ์ด ๋ธ”๋ก์˜ ๋ถ์ชฝ ๋˜๋Š” ๋‚จ์ชฝ์— ์œ„์น˜ํ•œ ๊ฒฝ์šฐ ๋ธ”๋ก์˜ ์™ผ์ชฝ ๊ฒฝ๊ณ„๋กœ๋ถ€ํ„ฐ์˜ ๊ฑฐ๋ฆฌ๋ฅผ ๋‚˜ํƒ€๋‚ด๊ณ , ์ƒ์ ์ด ๋ธ”๋ก์˜ ๋™์ชฝ ๋˜๋Š” ์„œ์ชฝ์— ์œ„์น˜ํ•œ ๊ฒฝ์šฐ ๋ธ”๋ก์˜ ์œ„์ชฝ ๊ฒฝ๊ณ„๋กœ๋ถ€ํ„ฐ์˜ ๊ฑฐ๋ฆฌ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ๋งˆ์ง€๋ง‰ ์ค„์—๋Š” ๋™๊ทผ์ด์˜ ์œ„์น˜๊ฐ€ ์ƒ์ ์˜ ์œ„์น˜์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์ฃผ์–ด์ง„๋‹ค. ์ƒ์ ์˜ ์œ„์น˜๋‚˜ ๋™๊ทผ์ด์˜ ์œ„์น˜๋Š” ๋ธ”๋ก์˜ ๊ผญ์ง“์ ์ด ๋  ์ˆ˜ ์—†๋‹ค.

๋ณผ๋“œ๋กœ ๋œ ๋ถ€๋ถ„๋งŒ ์ œ๋Œ€๋กœ ์ดํ•ดํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค.

๋จผ์ €, ๋ฐฉํ–ฅ(1,2,3,4)์— ๋”ฐ๋ผ ๊ฑฐ๋ฆฌ๋ฅผ ํ• ๋‹นํ•ด์•ผํ•œ๋‹ค.
์ฒ˜์Œ ๋ณด๋ฉด ์ดํ•ด๊ฐ€ ์•ˆ๋  ์ˆ˜๋„ ์žˆ์ง€๋งŒ.. ์ตœ๋Œ€ํ•œ ์ž˜ ์„ค๋ช…ํ•ด๋ณด๋„๋ก ๋…ธ๋ ฅ....

์œ„ ์ด๋ฏธ์ง€์ฒ˜๋Ÿผ ๊ฐ ๋ฐฉํ–ฅ์— ๋”ฐ๋ผ ๊ฑฐ๋ฆฌ๋ฅผ ํ• ๋‹นํ•œ๋‹ค. ๊ฑฐ๋ฆฌ๋ฅผ ํ• ๋‹นํ•œ๋‹ค๋Š” ๊ฒƒ์˜ ์˜๋ฏธ๋Š” ๋‹ค์Œ ์ด๋ฏธ์ง€๋ฅผ ๋ณด๋ฉด ๋” ์ดํ•ด๊ฐ€ ์ž˜ ๋  ๊ฒƒ์ด๋ฏ€๋กœ ์ผ๋‹จ์€ ๋„˜์–ด๊ฐ€๋ณด์ž..

๊ฑฐ๋ฆฌ ๊ณ„์‚ฐ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ํ•  ๊ฒƒ์ด๋‹ค.

์ด๊ฒŒ ๋ฌด์Šจ ๋œป์ด๋ƒ ํ•˜๋ฉด์€!
๋™๊ทผ์ด๊ฐ€ 1๋ฒˆ ๋ฐฉํ–ฅ์— ์œ„์น˜ํ•ด์žˆ๊ณ , ์ƒ์ ์ด 2๋ฒˆ ๋ฐฉํ–ฅ์— ์œ„์น˜ํ•ด์žˆ๋Š” ๊ฒฝ์šฐ
์ฒซ๋ฒˆ์งธ ๊ทธ๋ฆผ์„ ์ฐธ๊ณ ํ•œ๋‹ค๋ฉด ๋™๊ทผ์ด์˜ ๊ฑฐ๋ฆฌ ํ• ๋‹น์€ (1) ๊ณผ ๊ฐ™์ด ๋˜๊ณ , ์ƒ์ ์˜ ๊ฑฐ๋ฆฌ ํ• ๋‹น์€ (2)์™€ ๊ฐ™์ด ๋œ๋‹ค.
๋”ฐ๋ผ์„œ ๋‘˜ ์‚ฌ์ด์˜ ๊ฑฐ๋ฆฌ๋Š” ์ฒซ๋ฒˆ์งธ๋กœ (3)์˜ ๋…ธ๋ž€ ํ˜•๊ด‘ํŽœ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ, ์ฆ‰ abs((1)-(2))์™€ ๊ฐ™๋‹ค. ๋‘๋ฒˆ์งธ๋กœ๋Š” (4)์˜ ๋…ธ๋ž€ ํ˜•๊ด‘ํŽœ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ๋กœ 1์—์„œ ๊ตฌํ•œ ๊ฑฐ๋ฆฌ๋ฅผ ์ „์ฒด ๋„ค๋ชจ์˜ ๋‘˜๋ ˆ์—์„œ ๋นผ์ค€๋‹ค.

์ž์„ธํžˆ ์„ค๋ช…์„ ๋ง๋ถ™์ด์ž๋ฉด,
์šฐ๋ฆฌ๋Š” ์ „์ฒด ๋„ค๋ชจ์—์„œ ๊ฐ ์ ๋“ค ์‚ฌ์ด์˜ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•ด์•ผํ•œ๋‹ค. ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•  ๋•Œ์—๋Š” ๋‘ ๊ฐ€์ง€ ๊ฒฝ์šฐ๊ฐ€ ์กด์žฌํ•œ๋‹ค. ๊ฐ€๊นŒ์šด์ชฝ, ๋จผ์ชฝ (์–ด์ฉŒ๋ฉด ๊ฐ™์„ ์ˆ˜๋„ ์žˆ๊ฒ ์ง€๋งŒ). ๋‘ ๊ฐ€์ง€๋ฅผ ํ•ฉ์ณ์„œ ํ•˜๋‚˜์˜ ๋„ค๋ชจ๋ฅผ ๋งŒ๋“ ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค.

๋”ฐ๋ผ์„œ ๊ฐ ๊ฒฝ์šฐ(๋™๊ทผ, ๊ทธ๋ฆฌ๊ณ  ๊ฐ ์ƒ์ )์— ๋Œ€ํ•ด์„œ ๊ฐ๊ฐ ๊ฑฐ๋ฆฌ ํ• ๋‹น์„ ํ•œ๋’ค, ๊ทธ ๊ฑฐ๋ฆฌ๋“ค์˜ ์ฐจ (path1)์™€ ์ „์ฒด ๋‘˜๋ ˆ - path1 ํ•œ ๊ฒฝ์šฐ ์ค‘ ๋” ์งง์€ ๊ฑฐ๋ฆฌ๋ฅผ ์ „์ฒด total์— ๋ˆ„์ ํ•ฉ ํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค..!!!

์†Œ์Šค์ฝ”๋“œ

import sys
sys.stdin = open("input.txt","rt")

width, height = map(int,sys.stdin.readline().split())
n = int(sys.stdin.readline().strip())
store = list()

def calcDist(dir,dist):
    if dir == 1:
        return dist
    elif dir == 2:
        return width + height + (width - dist)
    elif dir == 3:
        return width + height + width + (height - dist)
    else:
        return width + dist

for _ in range(n+1):
    if _ == n:
        direction, distance = map(int,sys.stdin.readline().split())
    else:
        store.append(list(map(int,sys.stdin.readline().split())))

total = 0
dist1 = calcDist(direction, distance) #๋™๊ทผ์ด์˜ ๊ฑฐ๋ฆฌ
for i in range(n):
    dist2 = calcDist(store[i][0], store[i][1]) #์ƒ์ ์˜ ๊ฑฐ๋ฆฌ
    path1 = abs(dist1 - dist2)
    path2 = 2 * width + 2 * height - path1
    total += path1 if path1 < path2 else path2

print(total)