입출력 예 설명
입출력 예 #1
앞서 설명한 예와 같습니다.
입출력 예 #2
[1,2,3] 번째 탑이 쏜 신호는 아무도 수신하지 않습니다.
[4,5,6] 번째 탑이 쏜 신호는 3번째 탑이 수신합니다.
[7] 번째 탑이 쏜 신호는 6번째 탑이 수신합니다.
입출력 예 #3
[1,2,4,5] 번째 탑이 쏜 신호는 아무도 수신하지 않습니다.
[3] 번째 탑이 쏜 신호는 2번째 탑이 수신합니다.
[6] 번째 탑이 쏜 신호는 5번째 탑이 수신합니다.
[7] 번째 탑이 쏜 신호는 6번째 탑이 수신합니다.
접근법
반복문을 통해서 송신한 탑의 높이보다 더 높은 왼쪽에 있는 탑을 찾았습니다(신호를 왼쪽으로 보내기 때문에 가장 오른쪽에 있는 탑부터 검사하였습니다. ). 그리고 그 탑의 번호를 answer에 하나씩 추가하였습니다.
나의 코드
def solution(heights):
answer = []
for i in range(len(heights)-1,-1,-1):
for j in range(i-1,-1,-1):
if heights[i] < heights[j]:
answer.append(j+1)
break
if len(answer) != (len(heights)-i): answer.append(0)
answer.reverse()
return answer