Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
Tags
- python3
- 자료구조
- 큐
- 파이썬
- 두 포인터
- 너비우선탐색
- 그리디알고리즘
- 스택
- Xcode
- 프로그래머스
- 백준
- 다이나믹프로그래밍
- programmers
- 정렬
- 깊이우선탐색
- BOJ
- swift
- Python
- 누적 합
- 알고리즘
- Mac
- 그래프탐색
- 코딩테스트
- 브루트포스 알고리즘
- 해시를사용한집합과맵
- 문자열
- 백준알고리즘
- 트리를사용한집합과맵
- 구현
- 그래프이론
Archives
- Today
- Total
Coding Cantabile
[BOJ] #17608_막대기 (파이썬, Python3) 본문
본 게시글은 백준 저지 알고리즘 문제를 '파이썬, Python3' 언어로 풀이한 내용을 주관적으로 정리하였으며, 내용과 관련된 코드리뷰 및 피드백 환영합니다.
티어
Silver III
문제
아래 그림처럼 높이만 다르고 (같은 높이의 막대기가 있을 수 있음) 모양이 같은 막대기를 일렬로 세운 후,
왼쪽부터 차례로 번호를 붙인다. 각 막대기의 높이는 그림에서 보인 것처럼 순서대로 6, 9, 7, 6, 4, 6 이다.
일렬로 세워진 막대기를 오른쪽에서 보면 보이는 막대기가 있고 보이지 않는 막대기가 있다.
즉, 지금 보이는 막대기보다 뒤에 있고 높이가 높은 것이 보이게 된다.
예를 들어, 그림과 같은 경우엔 3개(6번, 3번, 2번)의 막대기가 보인다.
N개의 막대기에 대한 높이 정보가 주어질 때, 오른쪽에서 보아서 몇 개가 보이는지를 알아내는 프로그램을 작성하려고 한다.
입력
첫 번째 줄에는 막대기의 개수를 나타내는 정수 N (2 ≤ N ≤ 100,000)이 주어지고
이어지는 N줄 각각에는 막대기의 높이를 나타내는 정수 h(1 ≤ h ≤ 100,000)가 주어진다.
출력
오른쪽에서 N개의 막대기를 보았을 때, 보이는 막대기의 개수를 출력한다.
예제 입력 및 출력 1
6
6
9
7
6
4
6
3
예제 입력 및 출력 2
5
5
4
3
2
1
5
풀이
import sys
input = sys.stdin.readline
n = int(input())
h = []
for _ in range(n):
h.append(int(input()))
count = 1
pop = h[-1]
for _ in range(len(h)):
temp = h.pop()
if pop < temp:
pop = temp
count += 1
print(count)
import sys 를 사용하지 않은 경우 시간초과가 뜬다. h라는 높이 저장 리스트를 만든 후, 가장 후에 들어온 h[-1] 값을 먼저 저장 후, 그 값과 비교하여 그 값보다 높은 값들을 카운트하여 출력한다.
'Coding Test > BOJ' 카테고리의 다른 글
| [BOJ] #2164_카드2(파이썬, Python3) (0) | 2022.10.29 |
|---|---|
| [BOJ] #10866_덱(파이썬, Python3) (0) | 2022.10.27 |
| [BOJ] #12605_단어순서 뒤집기(파이썬, Python3) (0) | 2022.10.24 |
| [BOJ] #17413_단어 뒤집기 2 (파이썬, Python3) (0) | 2022.10.12 |
| [BOJ] #10773_제로 (파이썬, Python3) (0) | 2022.10.10 |