본문 바로가기

프로그래머스

풍선 터트리기

def solution(a):
    left_min = float('inf')
    right_min = float('inf')
    answer =set()
    for left,right in zip(a,reversed(a)):
        if left < left_min:
            left_min = left
            answer.add(left_min)
            
        if right < right_min:
            right_min = right
            answer.add(right_min)
            
    return len(answer)

코드 설명

  1. 초기화
    left_min과 right_min은 각각 양쪽 끝에서 현재까지 탐색한 최소값을 저장합니다. answer는 set 자료형으로 중복된 요소를 방지합니다.
  2. 반복문
    zip(a, reversed(a))를 사용하여 a 배열의 양쪽 끝에서 시작하는 두 개의 포인터(left와 right)를 동시에 탐색합니다.
  3. 조건문
    • left 요소가 현재 left_min보다 작을 경우, left_min을 갱신하고 answer 집합에 추가합니다.
    • right 요소가 현재 right_min보다 작을 경우, right_min을 갱신하고 answer 집합에 추가합니다.
  4. 결과 반환
    모든 요소가 저장된 answer 집합의 길이를 반환합니다.

'프로그래머스' 카테고리의 다른 글

2024 KAKAO WINTER INTERNSHIP 주사위 고르기  (0) 2024.11.07
수식 복원하기  (0) 2024.11.04
다단계 칫솔 판매  (0) 2024.10.30