새소식

Study/문제풀이

[hackerrank] Flatland Space Stations (Python)

  • -
728x90

문제 (링크)

  • 직선상에 1km 간격으로 배치되어 있는 도시들의 나라 flatland
  • 도시들 중 몇몇은 space station를 가지고 있음
  • space station으로부터 도시들의 거리들 중 최댓값을 구하기

풀이

def flatlandSpaceStations(n, c):
    max_gap = 0
    if len(c)==1: # end of cities or middle
        return max(n-c[0]-1, c[0])
        
    c = sorted(c)
    for i in range(len(c)-1):
        if c[i+1]-c[i] >max_gap:
            max_gap=c[i+1]-c[i]
    
    return max(max_gap//2, n-c[-1]-1, c[0])

max 함수를 잘 활용해야 하는 문제였다. space station의 위치가 0번째 도시, 마지막 도시 혹은 중간에 있는지에 따라 경우의 수가 달라지기 때문에 이번에는 wrong answer case를 오픈하지 않고 끝까지 풀어보려고 했지만 결국 마지막에 하나는 봤다. 그런데 내가 생각했던 케이스를 그냥 코드 상에 실수로 빼먹은 거였어서 아깝기도 했다. 

 if 문을 덜 사용하는 풀이도 discussion에 많이 있었지만 어떤 경우로 나누어서 문제를 풀었는지 남겨놓기 위해 짰던 함수를 그대로 업로드! 

728x90
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.