songdev
songdev
songdev
전체 방문자
오늘
어제
  • 분류 전체보기 (78)
    • Web 개발 (6)
    • 리눅스 (5)
    • git (5)
    • Bigdata (8)
      • 하둡 Architecture 번역 (6)
      • Ambari (2)
    • 코테 (22)
      • 프로그래머스 (22)
    • 자격증 (7)
      • 정보처리기사 (5)
      • SQLD (2)
    • 스터디 (18)
      • 웹 프로그래밍 (3)
      • 개념정리 (4)
      • 예제 (6)
      • 바닐라 JS로 크롬 앱 만들기 (5)
    • 일상 (7)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • parseInt()
  • 프로그래머스
  • 배열
  • 리눅스
  • 배열의 복사
  • 정보처리기사
  • Java
  • 정보처리기사 필기
  • SQLD
  • 정렬
  • copyOfRange()
  • javascript
  • sort()
  • 향상된 버블정렬
  • 자바스크립트
  • level1
  • charAt()
  • 깃허브
  • github push
  • github

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
songdev

songdev

같은 숫자는 싫어/java/프로그래머스/Level1
코테/프로그래머스

같은 숫자는 싫어/java/프로그래머스/Level1

2020. 2. 23. 15:27
반응형

https://programmers.co.kr/learn/courses/30/lessons/12906

 

코딩테스트 연습 - 같은 숫자는 싫어 | 프로그래머스

배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면, arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return 합니다. arr = [4, 4, 4, 3, 3] 이면 [4, 3] 을 retur

programmers.co.kr

 

<같은 숫자는 싫어>

○ 처음 푼 풀이 (2020.02.23)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import java.util.*;
 
public class Solution {
    public int[] solution(int []arr) {
        int[] temp = new int[arr.length];
        int[] answer = {};
        
        int j=0;
        for(int i=0;i<arr.length;i++) {
            if(i>0 && (arr[i] == arr[i-1])) {
                continue;
            }else
                temp[j++] = arr[i];
        }
        
        answer = Arrays.copyOfRange(temp, 0, j);
 
        return answer;
    }
}
Colored by Color Scripter
cs

 

- temp 배열을 arr 배열의 길이만큼 선언한다.

- arr배열의 수 들을 temp배열에 담을 때, 이전에 담았던 수랑 같으면 스킵하고 다를때만 담는다.

- 담을때마다 j를 증가시켜서, answer배열에 옮겨 담을때 j번지 까지만 가져온다.

 

○ 참고할 풀이

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import java.util.*;
 
public class Solution {
    public int[] solution(int []arr) {
        ArrayList<Integer> tempList = new ArrayList<Integer>();
        int preNum = 10;
        for(int num : arr) {
            if(preNum != num)
                tempList.add(num);
            preNum = num;
        }       
        int[] answer = new int[tempList.size()];
        for(int i=0; i<answer.length; i++) {
            answer[i] = tempList.get(i).intValue();
        }
        return answer;
    }
}
Colored by Color Scripter
cs

- ArrayList<Integer>

 

재 풀이 (2020.05.03)

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import java.util.*;
 
public class Solution {
    public int[] solution(int []arr) {
        int[] answer = {};
        
        int[] temp = new int[arr.length];
        int j = 0;
        
        for(int i=0;i<arr.length;i++)
        {
            if(i>0 && (arr[i]==arr[i-1]))
                continue;
            else
                temp[j++] = arr[i];
        }
        
        answer = Arrays.copyOfRange(temp, 0, j);
 
        return answer;
    }
}
Colored by Color Scripter
cs

 

반응형

'코테 > 프로그래머스' 카테고리의 다른 글

두 정수 사이의 합/java/프로그래머스/Level1  (0) 2020.04.19
문자열 내 마음대로 정렬하기/java/프로그래머스/Level1  (0) 2020.02.23
나누어 떨어지는 숫자 배열/java/프로그래머스/Level1  (0) 2020.02.23
문자열 내림차순으로 배치하기/java/프로그래머스/Level1  (0) 2020.02.23
K번째수/java/프로그래머스/Level1  (0) 2020.02.16
    '코테/프로그래머스' 카테고리의 다른 글
    • 두 정수 사이의 합/java/프로그래머스/Level1
    • 문자열 내 마음대로 정렬하기/java/프로그래머스/Level1
    • 나누어 떨어지는 숫자 배열/java/프로그래머스/Level1
    • 문자열 내림차순으로 배치하기/java/프로그래머스/Level1
    songdev
    songdev

    티스토리툴바