[프로그래머스] 같은 숫자는 싫어 (Java)

박신희·2022년 9월 5일
0

[풀이] 프로그래머스

목록 보기
20/33
post-thumbnail

❗ 풀이 과정

  • 일단, 함수의 매개변수인 arr의 길이만큼 answer의 크기를 선언해주었다.
  • idx 변수를 따로 선언해주어서 나중에 answer 배열에 답을 담고 뒤에 남은 자리가 생긴다면, Arrays.copyOfRange 메소드와 변수 idx를 통해 answer 배열을 잘라주었다.
  • answer에 idx라는 포인트를 두고 arr와 차근차근 비교를 해주면서 다르면, 넣어주는 방식으로 코드를 구현했다.
  • 여기서 if문 의 2번째 조건!에서 반복분 처음 돌 때, answer[idx-1]answer[-1]이여서 왜 에러가 안나냐고 할 수 있는데, 원래 if문에서 || 연산자는 첫번째 조건부터 차근차근 검사하다가 true가 되면 바로 if문을 나가는걸로 알고있다. 그래서 에러가 안난다.

🤜 풀이 코드

import java.util.*;

public class Solution {
    public int[] solution(int []arr) {
        int [] answer   = new int[arr.length];
        int idx =0;
        for(int i=0;i<arr.length;i++){
            if (i==0 || answer[idx-1]!=arr[i])   answer[idx++]  = arr[i];
        }
        return Arrays.copyOfRange(answer,0,idx);
    }
}

ps. - 파이썬으로 하면 정말 한줄 짜리인데,,, 후잇쉬 자바 쉽지 않네

profile
log my moments 'u')/

0개의 댓글