반응형
내 코드 (틀림)
import java.util.*;
public class Solution {
public int[] solution(int []arr) {
List<Integer> list = new ArrayList<>();
// 큐의 인터페이스 구현체인 LinkedList 사용
Queue<Integer> que = new LinkedList();
for(int i=0 ; i < arr.length - 1 ; i++){
if(i == 0) {
que.add(arr[i]);
} else {
if(arr[i] == arr[i+1]) {
continue;
}
else {
que.add(arr[i+1]);
}
}
}
while(!que.isEmpty()) {
list.add(que.poll());
}
return list.stream().mapToInt(i->i).toArray(); // 리스트를 배열로 변환
}
}
오~~ 나름 조건문 좀 맞게 쓴 것 같은데~하고 실행했더니 패스 못 함,,,ㅎㅎ
으앙... 모르겠어서 다른 분 풀이를 봤다. 🤦♀️
[프로그래머스] 같은 숫자는 싫어(JAVA)-Level1
배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은
velog.io
import java.util.*;
public class Solution {
public int[] solution(int []arr) {
ArrayList<Integer> list = new ArrayList<>();
int val = -1;
for(int i=0 ; i < arr.length ; i++) {
if(arr[i] != val) {
list.add(arr[i]);
val = arr[i];
}
}
return list.stream().mapToInt(i->i).toArray();
}
}
ArrayList를 선언하고..
val 값을 -1로 설정해서 얘를 이전 값과 비교했을 때 다르면,
리스트에 추가하고 이 val 값이 이전 값이 되도록 바꿔가도록 만드셨다.
(이전값하고 같으면 중복되니까 배열에 저장하지 않도록)
그리고 마지막 줄은 리스트를 배열로 바꾸는 stream식,,,
양옆에 붙은 두 값끼리 어떻게 비교하나 했더니..
초기화 미리 해놓고 이전 값이 그 값으로 설정되게끔,,, 한,,,,
그런 아이디어를 생각하지 못 했다.
다른 분들 코드도 보았는데 for문에서 아래와 같이 작성한 경우도 있었다.
import java.util.*;
public class Solution {
public int[] solution(int []arr) {
List<Integer> list = new ArrayList<Integer>();
list.add(arr[0]);
for (int i = 1; i < arr.length; i++) {
if (arr[i] != arr[i - 1])
list.add(arr[i]);
}
int[] answer = new int[list.size()];
for (int i = 0; i < list.size(); i++)
answer[i] = list.get(i);
return answer;
}
}
리스트에 먼저 arr[0] 값을 넣어놓고...
arr[1] ~ arr[arr.length -1]까지 if문의 조건대로 이전값과 비교해서 다른 경우에만 리스트에 원소를 추가하는 식으로...
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
반응형
'코테 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/Lv. 2] 올바른 괄호 (0) | 2023.02.23 |
---|---|
[프로그래머스/Lv. 2] 기능개발 (0) | 2023.02.23 |
[프로그래머스/Lv. 2] 위장 (0) | 2023.02.22 |
[프로그래머스/Lv. 2] 전화번호 목록 (0) | 2023.02.22 |
[프로그래머스/Lv. 1] 폰켓몬 (0) | 2023.02.22 |