알고리즘 풀이/프로그래머스

[Level1] 같은 숫자는 싫어

mhko411 2021. 1. 21. 22:42
728x90

문제

여러 개의 정수로 이루어진 리스트가 입력된다. 이 리스트의 수는 0이상 9이하로 존재한다.

이때 연속으로 존재하는 숫자는 한 개만 남기고 모두 제거하도록 한다.

 

입력

[1,1,3,3,0,1,1]

 

출력

[1,3,0,1]


1. 현재 인덱스와 다음 인덱스의 수가 같으면 continue를 하고 다르면 answer에 수를 추가한다.

2. 인덱스가 증가하다가 마지막 인덱스에 도달 했을 때 마지막 숫자를 answer에 추가한다.

3. answer에는 문제에서 요구하는 숫자만 남게된다.

 

python

def solution(arr):
    answer = []
    
    for idx in range(len(arr)):
        if idx==len(arr)-1:
            answer.append(arr[idx])
            continue
        if arr[idx]==arr[idx+1]:
            continue
        else:
            answer.append(arr[idx])
    return answer

 

c++

#include <vector>
#include <iostream>

using namespace std;

vector<int> solution(vector<int> arr) 
{
    vector<int> answer;

    int size=arr.size();
    for(int i=0;i<size;i++){
        if(i==size-1){
            answer.push_back(arr[i]);
            continue;
        }
        if(arr[i]==arr[i+1])
            continue;
        else{
            answer.push_back(arr[i]);
        }
    }

    return answer;
}

'알고리즘 풀이 > 프로그래머스' 카테고리의 다른 글

[Level1] 모의고사  (0) 2021.01.22
[Level1] 완주하지 못한 선수  (0) 2021.01.22
[Level1] 나누어 떨어지는 숫자배열  (0) 2021.01.21
[Level1] 자릿수 더하기  (0) 2021.01.21
[Level1] 시저 암호  (0) 2021.01.21