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

2025. 1. 18. 16:57·Problem Solving/프로그래머스 (Programmers)

🔗 문제 링크

https://school.programmers.co.kr/learn/courses/30/parts/12081

📰 문제 요약

문제 설명, 입력, 출력, 조건 등 간략하게 정리

배열 arr의 각 원소를 숫자 0부터 9까지 이루어져 있다. 이때, 배열 arr에 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 한다. 또한, 제거된 후 남은 수들은 기존에 순서를 유지해야 한다.

🔓 문제 접근 방식

기본 아이디어

  • 스택을 이용해서 하나씩 push 하면서 제일 위의 값과 비교하여,
    • 같은 숫자면 → 넘어감
    • 다른 숫자면 → push

사용 알고리즘

  • 스택

💻 구현 방법

  1. 새로운 배열 answer에 arr 의 원소를 하나씩 push
  2. push 하기 전에 answer에 제일 위의 숫자와 비교
  3. 같으면 continue로 넘어가기
  4. 다르면 push 하기

👍🏻 최종 제출 코드

def solution(arr):
    answer = []
    answer.append(arr[0])
    for num in arr : # 어차피 첫 번째 숫자는 같은 숫자이므로 push가 안되니 처음부터 진행
        if num == answer[-1] : # 같은 숫자라면
            continue # 넘어감
        else : # 다른 숫자라면
            answer.append(num) # 추가
    return answer

제일 위의 값과 비교할 때에는 arr[-1] 으로 접근할 수 있다는 점을 배웠다

📝 새로 학습한 내용

GPT가 추천해 준 개선 코드

def solution(arr):
    answer = []
    # 첫 번째 요소는 무조건 추가
    answer.append(arr[0])
    
    # 두 번째 요소부터 비교 시작
    for num in arr[1:]:  # 첫 번째 요소는 이미 추가했으므로 제외
        if num != answer[-1]:  # 마지막으로 추가된 값과 다르면 추가
            answer.append(num)
    
    return answer
  • answer.top 대신 answer[-1] 사용:
    • 파이썬 리스트는 top이라는 메서드나 속성을 제공하지 않는다!
    • 리스트의 마지막 요소를 참조하려면 answer[-1]을 사용
  • 첫 번째 요소 제외:
    • answer에 첫 번째 요소를 미리 추가했으므로 반복문에서 arr[1:]을 사용해 두 번째 요소부터 비교.
  • 불필요한 조건 제거:
    • if num == answer[-1]: 조건이 충족되면 continue로 넘어가므로 else를 사용하지 않아도 된다. 코드를 더 간결하게 작성할 수 있다
저작자표시 (새창열림)

'Problem Solving > 프로그래머스 (Programmers)' 카테고리의 다른 글

[프로그래머스] K번째 수  (0) 2025.02.02
[프로그래머스] 더 맵게  (0) 2025.02.02
[프로그래머스] 기능개발  (0) 2025.01.19
[프로그래머스] 완주하지 못한 선수  (0) 2025.01.11
[프로그래머스] 폰켓몬  (0) 2025.01.11
'Problem Solving/프로그래머스 (Programmers)' 카테고리의 다른 글
  • [프로그래머스] 더 맵게
  • [프로그래머스] 기능개발
  • [프로그래머스] 완주하지 못한 선수
  • [프로그래머스] 폰켓몬
vV최강양파Vv
vV최강양파Vv
양파 갓생 살기 프로젝트
  • vV최강양파Vv
    just-stop
    vV최강양파Vv
  • 전체
    오늘
    어제
    • just-stopyoon (22)
      • Front-end (1)
        • mosAIc 리팩토링 (0)
        • React 리액트 (6)
        • SNAPINFO 리팩토링 (0)
      • BoostCamp (4)
      • Problem Solving (7)
        • 백준 (Baekjoon) (0)
        • 프로그래머스 (Programmers) (7)
      • ECONOMY (4)
        • Daily 금융 상식 (4)
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

    • 멍청고양이
    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    토스
    알고리즘
    프론트엔드
    리액트
    코드
    큐
    정렬
    깃허브
    코딩테스트
    파이썬
    가장 큰수
    the money book
    react
    PS
    독후감
    독서
    구름톤챌린지
    해시
    구름톤
    CSS
    gihub
    프로그래머스
    책 후기
    코딩
    front-end
    금융생활
    react개발
    코딩 문제
    개발
    금융상식
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
vV최강양파Vv
[프로그래머스] 같은 숫자는 싫어
상단으로

티스토리툴바