-
반응형
안녕하세요, 하루플 입니다.
배열 관련 문제인 프로그래머스 '같은 숫자는 싫어' 문제입니다.
문제 요약
배열 arr의 각 원소는 0~9까지 이루어져 있다.
연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 한다.
단, 제거된 후 남은 수들을 반환할 때 배열 arr의 원소들의 순서를 유지해야한다.
- arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return 합니다.
- arr = [4, 4, 4, 3, 3] 이면 [4, 3] 을 return 합니다.
1. 연속적으로 나타나는 숫자를 제거하고 남은 수의 배열 길이는 어떻게 될지 모르므로 가변 리스트인 ArrayList를 선언합니다.
2. 앞의 원소와 비교하기 위한 변수 num을 선언하는데, 원소가 0~9까지 라고 하였으므로 영향을 받지 않도록 초기값은 -1로 선언하였습니다.
3. for문에서 처음에는 num과 무조건 숫자가 다르므로 arrList.add가 실행되어 처음 숫자는 무조건 삽입됩니다.
4. 이후 부터는 arr[i]를 num에 적용하였으므로 num과 계속 비교하여 숫자가 다른 경우에만 가변리스트인 arrList에 값이 삽입됩니다.
5. 우리는 일반 배열인 answer를 return 해야하므로 가변 리스트를 일반 배열로 바꾸는 작업을 합니다.
참고 사이트
반응형'개발 > 코딩테스트' 카테고리의 다른 글
[프로그래머스/JAVA] 시저암호 (0) 2021.10.30 [프로그래머스/JAVA] 가운데 글자 가져오기 (0) 2021.10.30 [프로그래머스/JAVA] 기능개발 (0) 2021.10.30 [프로그래머스/JAVA] 부족한 금액 계산하기 (1) 2021.10.29 [프로그래머스/JAVA] 나머지가 1이 되는 수 찾기 (0) 2021.10.28 댓글