-
자바가 낡았다는 느낌을 물씬 받게 하는 문제였다. 배열은 크기가 고정되기 때문에 동적으로 요소를 추가 제거를 할 수 없다. 그래서 list를 사용해야 하는데, list와 array 간 타입 변환이 쉽지 않다. 이런 게 쉽지 않다는 건 모두 코딩을 해줘야 한다는 의미이다...
'같은 숫자는 싫어'라는 문제는 입력으로 숫자열이 들어와 있을 때, 순차적으로 중복 숫자는 제거하고 다른 숫자들만 출력을 하는 것이다. 그렇다고 모든 중복을 제거하는 것은 아니다. 연속 중복만이 제거될 뿐, 이점은 예시에서 잘 설명이 되어 있는데 문제 풀 때는 놓친 포인트였다.
public class Solution{ public int[] solution(int[] arr){ ArrayList<Integer> temp = new ArrayList<Integer>(); temp.add(arr[0]); for(int i=0; i < arr.length; i++){ if(temp.get(temp.size()-1) != arr[i]) temp.add(arr[i]); } int[] answer = new int[temp.size()]; for(int i=0; i < temp.size(); i++) answer[i] = temp.get(i); return answer; } }
처음에 list를 선언하고 중복을 제거하면서 값을 추가해나간다. 그다음 answer라는 배열에 값을 넣어주는데 for문을 돌려야 한다. 이게 파이썬에 비해서 갑갑하게 느껴지는 부분이다.
'코딩연습' 카테고리의 다른 글
두 정수 사이의 합 (0) 2020.07.30 (프로그래머스) 코딩테스트 연습 > 해시 > 위장 (0) 2020.03.25 (프로그래머스) 코딩테스트 연습 > 그리디 > 저울 (0) 2020.03.25 (프로그래머스) 코딩테스트 연습 > 그리디 > 체육복 (0) 2020.03.19 (프로그래머스) 코딩테스트 연습 > 해시 > 전화번호 목록 (0) 2020.03.19