알고리즘

[프로그래머스] 같은 숫자는 싫어~

건뱅 2019. 4. 27.
반응형

<문제>

 

 

<작성코드>

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
 
import java.util.*;
 
public class Solution7 {
    public static void main(String[] args) {
        int[] arr = { 4441331229 };
        System.out.println("결  과\t: " + Arrays.toString(solution(arr)));
    }
 
    public static int[] solution(int[] arr) {
        System.out.println("주어진 배열 : " + Arrays.toString(arr));
 
        int k = arr[0];
        int cnt = 1// 출력 배열의 크기를 설정하기 위한 변수
        for (int i = 1; i < arr.length; i++) {
 
            if (k == arr[i]) {
 
            } else if (k != arr[i]) { // 같은 숫자가 이어지지 않을때만 cnt++
                cnt++;
                k = arr[i];
            }
        }
        int[] answer = new int[cnt];
        answer[0= arr[0];
        for (int i = 1, j = 0; i < arr.length; i++) {
 
            if (answer[j] == arr[i]) {
 
            } else if (answer[j] != arr[i]) {
                j++;
                answer[j] = arr[i];
 
            }
        }
 
        return answer;
    }
}
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter
 

 

<출력결과>

 

<프로그래머스 채점결과>

 

저번 '나누어떨어지는 숫자 배열' 문제에서 배열 크기를 벗어나면 오류가 발생되었던 문제가 이번에도 발생해서 출력배열에 담길 원소의 수만큼 출력배열의 크기를 설정하여 문제를 풀었다. 알고리즘 자체는 풀기 수월했다.

반응형

댓글