ABC175 C - Walking Takahashi에 도전했습니다.





왠지 이거↓의 유제가 아닌가?

유식자는 최적해를 요구할 수 있겠지만,
나는 1개 1개 경우 나누지 않으면 edge case 를
망라할 수 있는 자신이 없었다.

WalkingTakahashi.py
x,k,d = map(int,input().split())
cnt = abs(x // d)
if x == 0:
    if k%2 == 0:
        print(0)
    else:
        print(d)
elif x > 0:
    if abs(k-cnt)%2 == 0:
        if k < cnt:
            print(abs(x-k*d))
        else:
            print(abs(x-cnt*d))
    else:
        if k < cnt:
            print(abs(x-k*d))
        else:
            print(min(abs(x-(cnt+1)*d),abs(x-(cnt-1)*d))) # <= ココ
else:
    if abs(k-cnt)%2 == 0:
        if k < cnt:
            print(abs(x+k*d))
        else:
            print(abs(x+cnt*d))
    else:
        if k < cnt:
            print(abs(x+k*d))
        else:
            print(min(abs(x+(cnt+1)*d),abs(x+(cnt-1)*d)))# <= ココ

수작업 느낌, 바리 바리 (웃음)
코멘트에 있는 코코 , 기술에 있듯이 cnt+1 or cnt-1 는, 그 때의 상황에 맞추어
최소값을 선택해야합니다. 여기를 알아차릴 때까지 WA를 두 번 당겼다.

더 똑똑하게, 바삭바삭하게 할 수 있게 되고 싶다.
우선은 자력으로 착용하고 안심했다.

좋은 웹페이지 즐겨찾기