• 문제 설명
  • 수평 직선에 탑 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번째 탑이 수신합니다.

  • 내가 만든 코드

  1. 왼쪽으로 신호를 보내므로 첫 번째 for문은 0부터 시작, 두 번째 for문은 i보다 한 칸 작을때부터 시작하여 비교해주었다.
  2. 비교를 하다가 왼쪽 탑에 더 큰 층의 탑이 존재한다면 그 탑의 위치(j+1)를 answer에 넣어주고 비교할 탑을 바꿔서 비교한다.
  3. 위 과정을 반복한다.
  • 코드 채점 결과

 

'프로그래머스' 카테고리의 다른 글

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

+ Recent posts