공부/알고리즘

[python] Codility Lesson 7-4. StoneWall

richpark 2021. 9. 7. 00:46

 

이거 스택 큐로 어떻게 풀지... 아 .. 난 할수있어 하다가 3시간 허비 후 눈이 아파서 그냥 구글링 해보았다.

 

여기서 아래와 같이 스택구조를 생각해냄은 실로 대단한 것 같다... respect 합니다....

 

인접하지 않은 같은 높이의 블록을 처리해주는게 상당히 껄끄러웠는데, 아래와 같이 스택을 이용하면 모든것이 해결된다.

 

 

def solution(H):
    # write your code in Python 3.6
    blockCount = 0
    blockStack = []
    for i in range(len(H)):
        while len(blockStack) > 0 and blockStack[-1] > H[i]:
            blockStack.pop()
        
        if len(blockStack) == 0 or blockStack[-1] < H[i]:
            blockCount += 1
            blockStack.append(H[i])
            
    return blockCount
728x90