Always Be Wise

스택 : 막대기(백준 17608번) 본문

알고리즘/백준

스택 : 막대기(백준 17608번)

bewisesh91 2021. 11. 17. 23:41
728x90

▶ 문제 : https://www.acmicpc.net/problem/17608

 

17608번: 막대기

아래 그림처럼 높이만 다르고 (같은 높이의 막대기가 있을 수 있음) 모양이 같은 막대기를 일렬로 세운 후, 왼쪽부터 차례로 번호를 붙인다. 각 막대기의 높이는 그림에서 보인 것처럼 순서대로

www.acmicpc.net

##### 문제 #####
# 높이만 다르고 (같은 높이의 막대기가 있을 수 있음) 모양이 같은 막대기를 일렬로 세운 후,
# 왼쪽부터 차례로 번호를 붙인다. 
# 일렬로 세워진 막대기를 오른쪽에서 보면 보이는 막대기가 있고 보이지 않는 막대기가 있다. 
# 즉, 지금 보이는 막대기보다 뒤에 있고 높이가 높은 것이 보이게 된다.
# N개의 막대기에 대한 높이 정보가 주어질 때, 
# 오른쪽에서 보아서 몇 개가 보이는지를 알아내는 프로그램을 작성하려고 한다.

##### 입력 #####
# 첫 번째 줄에는 막대기의 개수를 나타내는 정수 N (2 ≤ N ≤ 100,000)이 주어지고 
# 이어지는 N줄 각각에는 막대기의 높이를 나타내는 정수 h(1 ≤ h ≤ 100,000)가 주어진다.

##### 출력 #####
# 오른쪽에서 N개의 막대기를 보았을 때, 보이는 막대기의 개수를 출력한다.

 

▶ 접근 방법

 

▶ 풀이 코드

import sys

N = int(input())
stack = [int(sys.stdin.readline()) for _ in range(N)]

count = 1

start = stack[-1]

for i in range(N-2,-1,-1) :
    if start < stack[i]:
        count += 1
        start = stack[i]
print(count)

 

▶ 관련 링크

2021.11.17 - [알고리즘] - 스택(Stack)이란?

2021.11.17 - [알고리즘] - 스택 : 스택(백준 10828번)

2021.11.17 - [알고리즘] - 스택 : 제로(백준 10773번)

2021.11.17 - [알고리즘] - 스택 : 괄호(백준 9012번)

2021.11.17 - [알고리즘] - 스택 : 탑(백준 2493번)

2021.11.17 - [알고리즘] - 스택 : 원 영역(백준 10000번)

2021.11.17 - [알고리즘] - 스택 : 괄호의 값(백준 2504번)

2021.11.17 - [알고리즘] - 스택 : 크게 만들기(2812번)

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

스택 : 원 영역(백준 10000번)  (0) 2021.11.17
스택 : 탑(백준 2493번)  (0) 2021.11.17
스택 : 괄호(백준 9012번)  (0) 2021.11.17
스택 : 제로(백준 10773번)  (0) 2021.11.17
스택 : 스택(백준 10828번)  (0) 2021.11.17
Comments