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

    [JAVA 문제 풀이] 183. 배열 만들기 6

    프로그래머스 (181859)
    Stupefyee's avatar
    Stupefyee
    Apr 07, 2025
    [JAVA 문제 풀이] 183. 배열 만들기 6
    Contents
    내가 작성한 코드다른 사람의 코드
    school.programmers.co.kr
    https://school.programmers.co.kr/learn/courses/30/lessons/181859
    notion image
     

    내가 작성한 코드

    import java.util.*; class Solution { public int[] solution(int[] arr) { List<Integer> stk = new ArrayList<>(); // 정답을 담을 임시 리스트 for (int i = 0; i < arr.length; i++) { // 리스트가 비어있으면 추가 if(stk.isEmpty()) { stk.add(arr[i]); continue; } // 리스트가 비어있지 않으면 마지막 원소와 비교 후 추가 또는 삭제제 if(stk.get(stk.size() - 1) == arr[i]) { stk.remove(stk.size() - 1); } else { stk.add(arr[i]); } } // 리스트가 비어있으면 -1을 반환, 아니면 리스트를 배열로 변환하여 반환 return stk.isEmpty() ? new int[]{-1} : stk.stream().mapToInt(i -> i).toArray(); } }
     

    다른 사람의 코드

    import java.util.*; class Solution { public int[] solution(int[] arr) { Stack<Integer> stk = new Stack<>(); // 정답을 담을 스택 for (int i = 0; i < arr.length; i++) { if (stk.isEmpty()) { stk.push(arr[i]); // 스택이 비어 있으면 현재 값을 추가 continue; } if (stk.peek() == arr[i]) { // 스택의 최상단 값과 현재 값이 같으면 제거 stk.pop(); } else { stk.push(arr[i]); // 그렇지 않으면 값을 추가 } } // 스택이 비어 있으면 [-1] 반환, 아니면 배열로 변환 return stk.isEmpty() ? new int[]{-1} : stk.stream().mapToInt(i -> i).toArray(); } }
    • 내가 작성한 코드와 똑같지만 List대신 Stack을 사용
    Share article
    Contents
    내가 작성한 코드다른 사람의 코드

    stupefyee

    RSS·Powered by Inblog