[프로그래머스] 뒤에 있는 큰 수 찾기(154539)

lhs's avatar
Nov 18, 2024
[프로그래머스] 뒤에 있는 큰 수 찾기(154539)
 

1. 문제 풀이 아이디어

  • 뒤에서부터 큰 수를 찾고, 현재 숫자와 뒤의 숫자 및 그 숫자의 뒷 큰수를 비교하면 문제를 해결할 수 있다.

2. 나의 정답 코드

class Solution { public int[] solution(int[] numbers) { int[] answer = new int[numbers.length]; answer[answer.length - 1] = -1; for (int i = numbers.length - 2; i >= 0; i--) { for (int j = i + 1; j < numbers.length; j++) { if (numbers[i] < numbers[j]) { answer[i] = numbers[j]; break; } else { if (answer[j] == -1) { answer[i] = -1; break; } if (numbers[i] < answer[j]) { answer[i] = answer[j]; break; } } } } return answer; } }

3. 정리

  • 작거나 같을 경우 뒷 큰수와 비교하고 뒷 큰수가 -1일 경우 -1을 넣고 뒷큰소가 더 클 경우 뒷 큰수를 넣는다.
  • 배열의 마지막 요소는 항상 뒷 큰수가 없으므로 1을 할당한다.
  • numbers.length - 2부터 0까지 순차적으로 현재 숫자와 그 뒤의 숫자들을 비교한다.
  • 만약 뒤의 숫자가 현재 숫자보다 크다면, 뒤의 숫자를 answer 배열에 넣는다.
  • 만약 뒤의 숫자가 현재 숫자보다 작거나 같으면, 뒷 큰수와 비교한다.
    • 만약 뒷 큰수가 -1이면 -1을 넣고, 현재 수보다 더 크다면 그 값을 넣는다.
Share article

LHS's Study Space