- 문제 설명
- 수평 직선에 탑 N대를 세웠습니다. 모든 탑의 꼭대기에는 신호를 송/수신하는 장치를 설치했습니다. 발사한 신호는 신호를 보낸 탑보다 높은 탑에서만 수신합니다. 또한, 한 번 수신된 신호는 다른 탑으로 송신되지 않습니다.
- 예를 들어 높이가 6, 9, 5, 7, 4인 다섯 탑이 왼쪽으로 동시에 레이저 신호를 발사합니다. 그러면, 탑은 다음과 같이 신호를 주고받습니다. 높이가 4인 다섯 번째 탑에서 발사한 신호는 높이가 7인 네 번째 탑이 수신하고, 높이가 7인 네 번째 탑의 신호는 높이가 9인 두 번째 탑이, 높이가 5인 세 번째 탑의 신호도 높이가 9인 두 번째 탑이 수신합니다. 높이가 9인 두 번째 탑과 높이가 6인 첫 번째 탑이 보낸 레이저 신호는 어떤 탑에서도 수신할 수 없습니다.
- 맨 왼쪽부터 순서대로 탑의 높이를 담은 배열 heights가 매개변수로 주어질 때 각 탑이 쏜 신호를 어느 탑에서 받았는지 기록한 배열을 return 하도록 solution 함수를 작성해주세요.
- 제한 사항
- heights는 길이 2 이상 100 이하인 정수 배열입니다.
- 모든 탑의 높이는 1 이상 100 이하입니다.
- 신호를 수신하는 탑이 없으면 0으로 표시합니다.
- 입출력 예
- 입출력 예 설명
- 입출력 예 #1 - 앞서 설명한 예와 같습니다.
- 입출력 예 #2
[1,2,3] 번째 탑이 쏜 신호는 아무도 수신하지 않습니다.
[4,5,6] 번째 탑이 쏜 신호는 3번째 탑이 수신합니다.
[7] 번째 탑이 쏜 신호는 6번째 탑이 수신합니다.
- 입출력 예 #3
[1,2,4,5] 번째 탑이 쏜 신호는 아무도 수신하지 않습니다.
[3] 번째 탑이 쏜 신호는 2번째 탑이 수신합니다.
[6] 번째 탑이 쏜 신호는 5번째 탑이 수신합니다.
[7] 번째 탑이 쏜 신호는 6번째 탑이 수신합니다.
- 내가 만든 코드
- 왼쪽으로 신호를 보내므로 첫 번째 for문은 0부터 시작, 두 번째 for문은 i보다 한 칸 작을때부터 시작하여 비교해주었다.
- 비교를 하다가 왼쪽 탑에 더 큰 층의 탑이 존재한다면 그 탑의 위치(j+1)를 answer에 넣어주고 비교할 탑을 바꿔서 비교한다.
- 위 과정을 반복한다.
- 코드 채점 결과
'프로그래머스' 카테고리의 다른 글
level 2 - 주식가격(100/100) (0) | 2019.04.01 |
---|---|
level 2 - 기능개발(90/100) (0) | 2019.04.01 |
level 2 - 프린터(100/100) (0) | 2019.03.30 |
level 2 - 124 나라의 숫자(100/100) (0) | 2019.03.28 |
level 2 - 타겟 넘버(100/100) (0) | 2019.03.28 |