[백준] 1874번 스택 수열 (Python)

2021. 3. 10. 21:36·알고리즘/백준
728x90
반응형

문제

www.acmicpc.net/problem/1874

 

1874번: 스택 수열

1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다.

www.acmicpc.net

 

코드

n = int(input())

stack = []
result = []
count = 1
boolean = True

for i in range(n):
    a = int(input())
    while count <= a:
        stack.append(count)
        result.append('+')
        count += 1
    if stack[-1] == a:
        stack.pop()
        result.append('-')
    else:
        boolean = False
        break

if boolean == False:
    print('NO')
else:
    for i in result:
        print(i)

 

코드설명

1부터 n까지에 수를 스택에 넣었다가 뽑아서 하나의 수열을 만드므로 한번 pop을 해줬던 수는 이미 수열에 들어갔기 때문에 생략해주면 된다.

예제입력1 에서 n에 8이 들어갔기 때문에 1~8까지의 수를 스택에 넣었다가 뽑아서 수열을 만드는 문제이다.

 

 

처음값 4가 들어오게 되면 스택에 1,2,3,4를 넣게되고 4를 빼준다.

다음 3이 들어오면 count보다 작아서 while문에 들어가지 않게되고 스택 맨위값과 입력값이 같기 때문에 바로 pop을 해준다.

 

여기서 만약 스택에 맨위값과 내가 지금 얻고 싶은 입력값 a가 다르다면 false를 준다.

스택은 맨위값부터 차례대로 나가게 되므로 맨위값과 입력값a가 다르다는 뜻은 원하는 값을 얻지못한다는 뜻이다.

 

반응형
저작자표시 (새창열림)

'알고리즘 > 백준' 카테고리의 다른 글

[백준] 1011번 Fly me to the Alpha Centauri (Python)  (1) 2021.03.12
[백준] 2839번 설탕배달 (Python)  (0) 2021.03.12
[백준] 1316번 그룹단어체커 (Python)  (0) 2021.03.12
[백준] 7576번 토마토 (Python)  (0) 2021.03.11
[백준] 11651번 좌표정렬하기2 (Python)  (0) 2021.03.09
'알고리즘/백준' 카테고리의 다른 글
  • [백준] 2839번 설탕배달 (Python)
  • [백준] 1316번 그룹단어체커 (Python)
  • [백준] 7576번 토마토 (Python)
  • [백준] 11651번 좌표정렬하기2 (Python)
wookcode
wookcode
공부한 내용들을 정리하고 기록하는 블로그입니다.
    반응형
  • wookcode
    wookcode
    wookcode
  • 전체
    오늘
    어제
    • 카테고리 (196) N
      • study (1) N
        • 아파치 카프카 애플리케이션 프로그래밍 with 자.. (0)
        • 인프런 (1) N
      • Live Study (15)
      • Programming (14)
        • Java (8)
        • Python (1)
        • Springboot (5)
        • MSA (0)
      • 알고리즘 (117)
        • 백준 (58)
        • 프로그래머스 (59)
      • 에러로그 (5)
      • 항해99 (23)
      • 면접 (1)
      • 프로젝트 (1)
      • CS (19)
        • 네트워크 (2)
        • 운영체제 (2)
        • 데이터베이스 (2)
        • 컴퓨터구조 (1)
        • Java (8)
        • Spring (4)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    해결
    후기
    버그
    에러
    인프런
    김영한
    회고
    조합
    알고리즘
    jpa
    스파르타코딩클럽
    spring
    실전프로젝트
    카카오코딩테스트
    그리디
    프로그래머스
    브루트포스
    코딩테스트
    orm
    SpringBoot
    java
    항해99
    파이썬
    미니프로젝트
    괄호
    백준
    SFlash
    항해마켓
    카카오인턴
    정리
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
wookcode
[백준] 1874번 스택 수열 (Python)
상단으로

티스토리툴바