17608. 막대기
•
마지막에 들어간 값은 무조건 보이니까 count = 1 초기화
•
마지막값을 기준으로 시작해서 맨 처음 입력값부터 순서대로 최댓값을 갱신해나간다.
◦
기존의 최댓값보다 크다면 count += 1
•
sys.stdin.readline()
→ 한 두줄을 받는 input() 과 다르게 반복문으로 여러 번 입력받아야 할 경우 input() 으로 받으면 시간초과가 발생할 수 있다.
◦
한개의 정수를 입력받을 때 : ‘한 줄을 입력’ 받기 때문에 ‘\n’이 함께 입력받아진다. → 개행문자 제거해야 하므로 아래와 같이 사용
import sys
a = int(sys.stdin.readline())
Python
복사
◦
정해진 개수의 정수를 한줄에 입력받을 때 : map(), split() 함수 이용
import sys
a,b,c = map(int,sys.stdin.readline().split())
Python
복사
◦
임의의 개수의 정수를 한줄에 입력받아 리스트에 저장할 때 : list() 함수 사용
import sys
data = list(map(int, sys.stdin.readline().split()))
Python
복사
◦
임의의 개수의 정수를 n줄 입력받아 2차원 리스트에 저장할 때:
각 요소의 길이가 동일한 2차원 리스트를 만들 수도, 길이가 다른 2차원 리스트를 만들 수도 있다.
import sys
data = []
n = int(sys.stdin.readline())
for i in range(n):
data.append(list(map(int,sys.stdin.readline().split())))
Python
복사
◦
문자열 n줄 입력받아 리스트에 저장할 때
import sys
n = int(sys.stdin.readline())
data = [sys.stdin.readline().strip()for i in range(n)]
Python
복사
import sys
N = int(sys.stdin.readline()) # 막대기의 개수 입력
stack = []
count = 1
for _ in range(N): # _ 는 그냥 인덱스를 무시할 때
stack.append(int(sys.stdin.readline()))
# 먼저 가장 마지막으로 들어온 값이 최댓값
max = stack[-1]
# 뒤에서부터 차근차근 올라오면서 max값을 갱신해준다.
for i in range(len(stack)-1,-1,-1):
if stack[i] > max :
count += 1
max = stack[i]
print(count)
Python
복사