inblog logo
|
silver
    알고리즘문제풀기

    [알고리즘문제풀기] 배열 만들기 4

    silver's avatar
    silver
    Oct 04, 2025
    [알고리즘문제풀기] 배열 만들기 4
    Contents
    문제내가 작성한 다른 사람들의 정답

    문제

    school.programmers.co.kr
    https://school.programmers.co.kr/learn/courses/30/lessons/181918

    내가 작성한

    오답

    :3번째 조건에 따르면 stk의 마지막 원소가 크거나 같으면 마지막 원소를 제거하라고 했지 i++하라고 안했다
    notion image
    class Solution { public int[] solution(int[] arr) { ArrayList<Integer> stk = new ArrayList<>(); for(int i=0; i<arr.length; i++){ if(stk.isEmpty()) stk.add(arr[i]); else { if(stk.get(stk.size()-1)<arr[i]) stk.add(arr[i]); else stk.remove(stk.size()-1); } } return stk.stream().mapToInt(i->i).toArray(); } }

    정답

    import java.util.*; class Solution { public int[] solution(int[] arr) { ArrayList<Integer> stk = new ArrayList<>(); int i = 0; while(i<arr.length){ if(stk.isEmpty()) { stk.add(arr[i]); i++; } else{ if(stk.get(stk.size()-1)<arr[i]) { stk.add(arr[i]); i++; }else { stk.remove(stk.size()-1); } } } return stk.stream().mapToInt(a->a).toArray(); } }

    다른 사람들의 정답

    : stack이용
    import java.util.*; class Solution { public Stack<Integer> solution(int[] arr) { Stack<Integer> stack = new Stack<>(); int i = 0; while (i < arr.length) { if (stack.empty() || stack.peek() < arr[i]) { stack.push(arr[i]); i++; } else if (stack.peek() >= arr[i]) { stack.pop(); } } return stack; } }
    Share article

    silver

    RSS·Powered by Inblog