이 문제를 풀고 나서 더 간단한 다른 풀이를 찾다가 추상클래스와 인터페이스, ArrayList, ListIterator 까지 많은 것을 공부하고왔다.
2019/11/20 - [자바/기본 개념] - List와 ArrayList / ArrayList와 Array
2019/11/20 - [자바/기본 개념] - 추상클래스와 인터페이스 / 상속과 다형성
우선 문제는 간단하다.
배열 arr 가 주어지는데, 연속으로 중복된 element 는 하나만 남기고 전부 제거해 배열 answer 에 넣으면 끝!
arr = [1,1,3,3,0,1,1] 이면, answer = [1,3,0,1] 이 될 것이고,
arr = [4,4,4,3,3] 이면, answer = [4,3] 이 될 것이다.
public class solution { public static void main(String[] args) { // TODO Auto-generated method stub int[] arr = {1,1,3,3,0,1,1}; int tmp = 1; //배열 answer 의 크기 변수, arr 의 첫번째 원소는 무조건 넣기 때문에 0이 아닌 1로 초기화 for(int k=0; k<arr.length-1;k++) { if(arr[k] != arr[k+1]) { //연속으로 같은 element 가 나오지 않았다면 tmp +1 tmp ++; } } int[] answer = new int[tmp]; //tmp 크기 만큼 배열 answer 선언 answer[0] = arr[0]; //첫번째 원소는 무조건 넣기, answer[0] = 1 tmp = 1; //배열 answer 의 인덱스 1 부터 값을 넣기 위해 tmp = 1 로 초기화 for(int j=0; j<arr.length-1;j++) { if(arr[j] != arr[j+1]) { answer[tmp] = arr[j+1]; tmp++; } } for(int i:answer) { System.out.print(i); } } } |
이렇게 문제 해결!
Array 가 아닌 ArrayList 를 사용한 간단 풀이도 찾을 수가 있었다.
public class solution { public static void main(String[] args) { int[] arr = {1,1,3,3,0,1,1}; List<Integer> list = new ArrayList<>(); //answer if(arr.length>0) list.add(arr[0]); //첫번째 원소 무조건 넣기
for(int i=1; i<arr.length; i++) { //list 에 들어가있는 가장 마지막 값과 arr 원소 하나씩 비교 //같지 않으면 list 에 추가 if(!list.get(list.size()-1).equals(arr[i])) { list.add(arr[i]); } } int[] answer = new int[list.size()]; //값 넣어둔 list 크기 만큼 answer 배열 선언 for(int i=0; i<answer.length; i++) { //값 하나씩 answer 배열에 넣기 answer[i] = list.get(i); } for(int i : answer) { System.out.print(i); } } } |
이렇게 ArrayList 의 메소드를 활용해서 간단히 구현할 수 도 있다.
참고
https://blog.naver.com/PostView.nhn?blogId=yongyos&logNo=221473609669
'개발 > JAVA' 카테고리의 다른 글
[JAVA 백준] 11022. A+B - 8 (0) | 2019.11.20 |
---|---|
[JAVA 백준] 10817. 세 수 (0) | 2019.11.20 |
[JAVA] level1. 나누어 떨어지는 숫자 배열 / Arrays.sort() (0) | 2019.02.08 |
[JAVA] level1 . 정수 제곱근 판별 / Math.sqrt(n), Math.pow(n,m) (0) | 2019.01.23 |
[JAVA] level1 . 핸드폰 번호 가리기 / substring(), String ""+"" (0) | 2019.01.23 |