기록을 합시다.
[프로그래머스] 같은 숫자는 싫어(python/java) 본문
문제 요약
- 배열에서 나타나는 연속적인 숫자를 하나만 남기고 전부 제거하라.
파이썬으로 제출한 정답
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의 숫자로 재할당해준다.
코드도 읽기 쉬운 편이라서 코드를 가지고 설명하지는 않겠다.
'공부 > 알고리즘' 카테고리의 다른 글
[프로그래머스] 완주하지 못 한 선수 (0) | 2023.06.11 |
---|---|
[프로그래머스] 최소 직사각형(python/java) (0) | 2023.06.11 |
[프로그래머스] k번째 수(python/java) (0) | 2023.06.05 |
[프로그래머스] 폰켓몬(python/java) (0) | 2023.06.05 |
[프로그래머스] Jaden Case (0) | 2023.04.07 |
Comments