728x90
반응형
2021.11.14
69번째 포스팅
입사 252일차.
코테 문제풀이 6주차 1번 문제
0. 문제
① 연습문제 : 같은 숫자는 싫어
② 설명
문제설명 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면,
제한사항
|
③ 링크
1. 접근방법
생각해낸 방법은 2가지
① 배열을 담은 후, 같은 value를 가진 index를 삭제
② 큐를 모두 담은 후, fornt와 다음 value를 비교
2. 풀이
① 접근방법 : ②
② 풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
import java.util.*;
public class Solution {
/*
* 시작시간 : 17:48
* 종료시간 : 18:03
*/
public int[] solution(int[] arr) {
int[] answer = solveCT(arr);
return answer;
}
public int[] solveCT(int[] arr) {
Queue<Integer> queue = new LinkedList<>();
List<Integer> list = new ArrayList<>();
// 1. 배열에 들어있는 모든 값들을 Queue에 쌓는다.
for (int i = 0; i < arr.length; i++) {
queue.offer(arr[i]);
}
// 2. front와 큐의 value들을 비교
while (!queue.isEmpty()) {
int front = queue.poll();
if (queue.isEmpty()) {
list.add(front);
break;
}
// 3. front와 값이 다르면 정답 list에 add.
if (front != queue.peek()) {
list.add(front);
}
}
int[] answer = new int[list.size()];
for (int i = 0; i < list.size(); i++) {
answer[i] = list.get(i);
}
return answer;
}
}
|
cs |
3. 결과
4. 주의사항
① 이중for문을 사용할 경우 효율성 테스트를 통과할 수 없다.
728x90
반응형
'코딩테스트' 카테고리의 다른 글
[코테/JAVA] 연습문제 : 가운데 글자 가져오기 (0) | 2021.11.24 |
---|---|
[코테/JAVA] 2017 팁스타운 : 짝지어 제거하기 (0) | 2021.11.14 |
[코테/JAVA] 스택/큐 : 기능개발 (0) | 2021.11.08 |
[코테/JAVA] 연습문제 : 124 나라의 숫자 (0) | 2021.11.06 |
[코테/JAVA] 월간 코드 챌린지 시즌2 : 약수의 개수와 덧셈 (0) | 2021.11.06 |
댓글