코딩테스트/프로그래머스 Lv. 0

[프로그래머스] Lv. 0 배열 만들기 4 JAVA

촙오 개발자 2025. 2. 6. 21:44
반응형

배열 만들기 4

 

문제 설명

 

요구사항

  • arr배열로 stk배열 만들기
  • stk가 비어있다면 arr[i] 값 추가
  • stk 마지막 배열값이 arr[i] 보다 작으면 arr[i] 값 추가
  • stk 마지막 배열값이 arr[i] 랑 같거나 크면 stk 마지막 배열값 삭제

 

테스트

package lv0;

import java.util.ArrayList;
import java.util.List;

public class 배열_만들기_4 {
	public int[] solution(int[] arr) {
        int[] stk = {};
        
        List<Integer> list = new ArrayList<Integer>();
        
        int i = 0;

        while(true) {
        	if(i == arr.length) {
        		break;
        	}
        	
        	if(list.size() == 0) {	// stk가 값이 없다면 추가, i + 1
        		list.add(arr[i]);
        		i++;
        	} else {
        		if(list.get(list.size() - 1) < arr[i]) { // stk 마지막 값이 arr[i] 보다 작으면 추가, i + 1
        			list.add(arr[i]);
        			i++;
        		} else { // stk 마지막 값이 arr[i] 보다 작으면 삭제
        			list.remove(list.size() - 1);
        		}
        	}
        	
        	
        }
        
        stk = new int[list.size()];
    	
    	for(int j = 0; j < list.size(); j++) {
    		stk[j] = list.get(j);
    	}
        
        return stk;
    }
}

 

프로그래머스

import java.util.ArrayList;
import java.util.List;

class Solution {
    public int[] solution(int[] arr) {
        int[] stk = {};
        
        List<Integer> list = new ArrayList<Integer>();
        
        int i = 0;

        while(true) {
        	if(i == arr.length) {
        		break;
        	}
        	
        	if(list.size() == 0) {
        		list.add(arr[i]);
        		i++;
        	} else {
        		if(list.get(list.size() - 1) < arr[i]) {
        			list.add(arr[i]);
        			i++;
        		} else {
        			list.remove(list.size() - 1);
        		}
        	}
        	
        	
        }
        
        stk = new int[list.size()];
    	
    	for(int j = 0; j < list.size(); j++) {
    		stk[j] = list.get(j);
    	}
        
        return stk;
    }
}

 

결과

반응형