02-07 13:11
Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
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
Archives
관리 메뉴

기록을 합시다.

[프로그래머스] 같은 숫자는 싫어(python/java) 본문

공부/알고리즘

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

울집고양이세마리 2023. 6. 5. 16:41

문제 요약

  • 배열에서 나타나는 연속적인 숫자를 하나만 남기고 전부 제거하라.

파이썬으로 제출한 정답

def solution(arr):
    tmp = -1

    answer = []

    for i in arr:
        if tmp == i:
            continue 

        else:
            tmp = i 
            answer.append(i)

    return answer

자바로 제출한 정답

import java.util.*;

public class Solution {
    public List<Integer> solution(int []arr) {
        int tmp = -1; 
        List<Integer> answer = new ArrayList<Integer>();
        for(int num : arr){
            if(tmp == num){
                continue;
            }else{ //tmp와 num이 다를 때
                tmp = num;
                answer.add(num);
            }
        }

        return answer;
    }
}

해설

내가 생각한 로직은 다음과 같다.

  • 배열의 중복 값을 저장하는 tmp 변수와, 값을 저장하는 배열인 answer 배열을 선언해준다.
  • arr 배열을 돌 때마다 각 숫자가 tmp 변수와 일치하는지 확인하고, tmp 변수와 일치하면 answer 배열에 저장하지 않는다. 일치하지 않으면 answer 배열에 저장하고, tmp 변수의 값을 해당 arr의 숫자로 재할당해준다.

코드도 읽기 쉬운 편이라서 코드를 가지고 설명하지는 않겠다.

Comments