[JAVA 문제 풀이] 182. 빈배열에 추가, 삭제하기

프로그래머스 (181860)
Stupefyee's avatar
Apr 07, 2025
[JAVA 문제 풀이] 182. 빈배열에 추가, 삭제하기
notion image
 

내가 작성한 코드

import java.util.*; class Solution { public int[] solution(int[] arr, boolean[] flag) { List<Integer> list = new ArrayList<>(); // 임시로 저장할 리스트 // flag 배열을 순회하며 arr 배열의 값을 리스트에 추가하거나 제거 for (int i = 0; i < flag.length; i++) { if (flag[i]) { for (int j = 0; j < arr[i] * 2; j++) { list.add(arr[i]); } } else { for (int j = 0; j < arr[i]; j++) { list.remove(list.size() - 1); } } } return list.stream().mapToInt(i -> i).toArray(); // 리스트를 배열로 변환하여 반환 } }
 

다른 사람의 코드

import java.util.stream.Stream; class Solution { public int[] solution(int[] arr, boolean[] flag) { String answer = ""; for(int idx=0; idx<arr.length; idx++) { if(flag[idx]) { answer += String.valueOf(arr[idx]).repeat(arr[idx]*2); // 문자열에 반복해서 추가 } else { answer = answer.substring(0, answer.length() - arr[idx]); // 문자열 뒷부분 제거 } } return Stream.of(answer.split("")).mapToInt(Integer::parseInt).toArray(); // 문자열 배열화 후 인트 배열화 하기 } }
 
Share article

stupefyee