코딩 테스트/프로그래머스

Lv2. H-Index

  • -
728x90
반응형

문제 보기 :  H-Index

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 


문제

  • 정답률 : 73%


작성 코드

from collections import deque
def solution(s):
    s = deque(list(s))
    ss = []
    for _ in range(len(s)): 
        a1 = s.popleft() #["b","a","a","b","a","a"]
        if ss == []:
            ss.append(a1)
        elif ss[-1] == a1:
            ss.pop()
        elif ss[-1] != a1:
            ss.append(a1)
                
    if ss != []:
        return 0
    else:
        return 1
        
        
'''
<추가 입출력 예제>
[0] 0
[3, 4] 2
[1, 2, 3, 5, 6, 7, 10, 11] 5
[3, 5, 11, 6, 1, 5, 3, 3, 1, 41] 5
[1, 11, 111, 1111] 3
'''

풀이

주어진 예제에서 [3, 0, 6, 1, 5]일 때 h-index는 3으로 나타나서 리스트 내 원소가 h-index가 되는줄 알았다.

그치만 질문 게시판에서 [1, 11, 111, 1111]의 경우, 답이 2가 된다는 것을 보고 회로?를 돌려보니 알고리즘이 파악할 수 있었고, 10분 내로 코딩했다.

다만, answer ≠ h, over = len(citations)- above를 모두 각각 구하고 대소 비교도 해야해서, 복잡성이 있었다.

320x100
728x90

'코딩 테스트 > 프로그래머스' 카테고리의 다른 글

Lv0. 연속된 수의 합  (0) 2024.08.06
Lv2. [1차] 캐시  (0) 2024.08.02
Lv2. 의상  (0) 2024.08.01
Lv2. 짝지어 제거하기  (0) 2024.07.27
Lv2. 숫자의 표현  (0) 2024.07.27
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.