본문 바로가기
Language/알고리즘 문제풀이

프로그래머스 탑 풀이(Java)

by wakestand 2019. 9. 3.
반응형

사이트명 : 프로그래머스(Programmers)

문제명 : 탑

언어 : 자바(Java) 

 

이번 문제도 역시 설명이 문제보다 더 어려운데

heights 배열을 주는데 배열 끝부터 배열 0 순서대로 진행한다

근데 배열에 현재 값보다 더 큰 값이 있으면

그 배열의 인덱스를 answer 배열에 넣어서 return 하면 된다는 얘기!!

 

예제로 예를 들면 배열에 6,9,5,7,4가 넣어져 들어오는데

4 다음으로 나오는 7이 4보다 큰데 그럼

[0,0,0,0,4]가 된다

 

그 다음 값인 7은 9가 더 높은 값이므로

[0,0,0,2,4] ... 이런 식으로 진행한다

 

내 풀이방법은 아래와 같은데

 

일단 탑 배열을 +1칸 해서 넣어줬는데

이거는 내가 배열 -1 하면서 비교하는게 어려워서

일부러 한칸 더 크게 배열을 만든 뒤

 

배열의 0번째 인덱스는 버리고 1번째 인덱스부터 하려고 해서 +1을 해 준거다

 

다음으로는 for문을 역순으로 돌리는데

다음 타워값이 현재 타워값보다 크다면 그 값의 인덱스를

 

answer 배열에 넣어주고

만약 역순으로 돌리는 와중 현재 값보다 더 큰 값이 배열에 없다면 0을 넣어주면 된다

 

이후 for문이 끝나면 완성된 배열을 반환하면 된다

반응형

댓글