JAVA언어의 기초/코딩테스트
[프로그래머스/Lv.1] 같은 숫자는 싫어 - JAVA
dong uk
2024. 2. 15. 17:29
문제
문제를 풀기 위해서 문제에 대한 분석
연속적으로 나타나는 숫자 하나만 남기고 전부 제거하려 한다는 점
제거되고 남은 수들을 반환할 때 원소들의 순서를 유지해야 하는 점
제한 사항
배열 원소의 크기는 0 <= i <=9
배열의 크기는 1,000,000 이하의 자연수
풀이
코드를 하나씩 뜯어보자
연속적으로 나타나는 숫자를 제거하게 되면
남은 숫자의 길이가 어떻게 변할지 모르기 때문에
가변 리스트인 ArrayList를 선언해 준다.
비교하기 위한 변수 value를 선언 함과 동시에
0보다 크거나 같고 9보다 작거나 같은 정수이기에 음수는 없다.
그렇기에 0과 겹치는 일이 없도록 하기 위해
value값을 -1로 초기화하였다.
그 후
for문에 입력받은 arr의 length의 길이만큼 루프 하면서
arr의 배열 값이 value값과 같지 않으면
미리 선언하였던 ArrayList에 값을 하나씩 넣어준다.
이후부터 arr [i]에 value값이 저장되어 있어
비교해 보고 숫자가 다른 경우에만
가변리스트인 ArrayList에 값이 저장된다.
마지막으로 일반배열인 answer로 배열로 return 해야 하기에
가변 리스트인 ArrayList를 일반배열인 answer로 변환시켜야 한다.