[프로그래머스/Python] 짝지어 제거하기

2023. 9. 5. 01:22·Algorithm/Programmers
def solution(s):
    answer = -1

    stack = [s[0]]
    for i in s[1:]:
        if stack and stack[-1] == i:
            stack.pop()
            continue
        stack.append(i)

    answer = 1 if not stack else 0
    return answer

연속인 문자를 어떻게 체크할까?

스택에 문자를 넣어줄 때, 맨 위 top 원소가 같은 문자인지 체크하면 된다.

같은 원소라면, pop해서 꺼내주고, 아니라면 append 한다.

 

모든 문자를 넣어주고 stack이 비어 있으면 짝지어 제거가 가능하므로 1 리턴, 그 외는 0 리턴이다.

 

+) 그리고 미친 풀이

class ALWAYS_CORRECT(object):
    def __eq__(self,other):
        return True

def solution(a):
    answer = ALWAYS_CORRECT()
    return answer;

와ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

이게 여전히 동작하는 코드인지는 모르겠으나 엄청난 사람인건 알 수 있다!!

 

python에서 __eq__ 는 연산자 '=='를 오버로딩한다.

온라인 저지에서 'isCorrect = solution(42) == 42424' 이런식으로 체크하는 것을 역이용했다.

항상 True를 반환하도록 __eq__를 짜면, 뒤에 어떤 수와 비교를 하더라도 항상 True를 반환하기에 항상 정답 처리되는 것처럼 속이는 원리다.

- 프로그래머스 Yongjun Park님 댓글

'Algorithm > Programmers' 카테고리의 다른 글

[프로그래머스/Python] 베스트앨범  (0) 2023.09.13
[프로그래머스/Python] 의상  (0) 2023.09.12
[프로그래머스/Python] 전화번호 목록  (0) 2023.09.12
[프로그래머스/Python] 뒤에 있는 큰 수 찾기  (0) 2023.09.05
[프로그래머스/Python] 스택/큐  (0) 2023.09.05
'Algorithm/Programmers' 카테고리의 다른 글
  • [프로그래머스/Python] 의상
  • [프로그래머스/Python] 전화번호 목록
  • [프로그래머스/Python] 뒤에 있는 큰 수 찾기
  • [프로그래머스/Python] 스택/큐
빵빵0
빵빵0
(아직은) 공부하고 정리하는 블로그입니다.
  • 빵빵0
    Hack Your World
    빵빵0
  • 전체
    오늘
    어제
    • 분류 전체보기 (92)
      • Error Handling (7)
      • Project (5)
        • MEV (2)
      • Architecture (0)
        • API (0)
        • Cache (0)
        • 사소한 고민거리 (0)
      • Computer Science (4)
        • Data Structure (2)
        • Database (1)
        • Cloud (0)
        • OS (0)
        • Infra, Network (1)
        • AI (0)
      • Language (8)
        • Go (8)
        • Rust (0)
        • Python (0)
        • Java (0)
      • Algorithm (40)
        • BaekJoon (18)
        • Programmers (7)
        • LeetCode (6)
        • NeetCode (9)
      • SW Books (9)
        • gRPC Up & Running (1)
        • System Design Interview (2)
        • 스프링 입문을 위한 자바 객체지향의 원리와 이해 (6)
        • 블록체인 해설서 (0)
        • 후니의 쉽게 쓴 CISCO 네트워킹 (0)
      • BlockChain (4)
        • Issues (0)
        • Research (4)
        • Tech (0)
      • Own (8)
        • TIR(Today I Read) (3)
        • Personal (2)
        • Novel (0)
        • Memo (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    candlechart
    BaekJoon
    Hash Table
    Python
    golang
    블록체인
    BFS
    chart
    two pointer
    Programmers
    BEAKJOON
    NeetCode
    EVM
    LeetCode
    프로그래머스
    스택
    큐
    context
    Greedy
    goroutine
    MEV
    Palindrome
    2024
    ethereum
    go
    blockchain
    MongoDB
    DP
    백준
    KBW
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
빵빵0
[프로그래머스/Python] 짝지어 제거하기
상단으로

티스토리툴바