백준 17608 막대기 파이썬 자바
# 파이썬: 단순 계산
- sys 안 쓰고 input으로 처리하면 시간 초과! 주의
import sys
N = int(sys.stdin.readline())
L = list(int(sys.stdin.readline()) for _ in range(N))
ans = 1
max = L[-1]
# 오른쪽부터 하나씩 최대값 변경해가면서 탐색
for x in range(N - 1, -1, -1):
if L[x] > max:
max = L[x]
ans += 1
print(ans)
// 자바: 스택 사용
public class B17608 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int ans = 1;
Stack <Integer> stack = new Stack<>();
for (int i = 0; i < N; i++) {
st = new StringTokenizer(br.readLine());
stack.push(Integer.parseInt(st.nextToken()));
}
int top = stack.pop();
while (!stack.isEmpty()) {
int n = stack.pop();
if (n > top) {
ans++;
top = n;
}
}
System.out.println(ans);
}
}
'Algorithm > BOJ' 카테고리의 다른 글
[BOJ] 9742. 순열 (python / java) (0) | 2023.03.19 |
---|---|
[BOJ] 1759. 암호 만들기 (Python / Java) (0) | 2023.03.17 |
[BOJ] 10986. 나머지 합 (Java / Python) (0) | 2023.03.12 |
[BOJ] 12933. 오리 (python) (0) | 2023.03.10 |
[BOJ] 11660. 구간합 구하기 5 (Java) (0) | 2023.03.09 |