파이썬 알고리즘 273번 | [백준 2564번] 경비원 - 구현

Yunny.Log ·2022년 11월 6일
0

Algorithm

목록 보기
278/318
post-thumbnail

273. 경비원 - 구현

1) 어떤 전략(알고리즘)으로 해결?

구현

2) 코딩 설명

<내 풀이>


from cmath import sqrt
import sys

r,c = map(int, sys.stdin.readline().split())
store_cnt = int(sys.stdin.readline())
store = []

for i in range(store_cnt):
    sloc, sdis = map(int, sys.stdin.readline().split())
    store.append((sloc, sdis))

def distance(loc , dist ) :
    if loc==1 :
        return dist

    elif loc ==2 :
        return (r-dist)+c+r

    elif loc == 3 :
        return 2*r+c+(c-dist)

    else : 
        return r+dist

dloc, dis = map(int, sys.stdin.readline().split())
res = 0

d_dis = distance(dloc, dis)

for i in range(store_cnt) :
    now_srow, now_scol = store[i]
    s_dis = distance(now_srow, now_scol)
    cand1 = abs(d_dis-s_dis)
    cand2 = 2*r+2*c-cand1
    res+= min(cand1, cand2)

print(res)

<반성 점>

  • 규칙 찾아내는 것의 고단함, 을 즐겨야하는데 말이야,, 아직은,,

<배운 점>

https://joanne.tistory.com/63 이 분의 규칙 참고

0개의 댓글