Java 문제풀이
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int n, left=1,left_max,right_max, right=1;
Scanner scanner = new Scanner(System.in);
n = scanner.nextInt();
int []a= new int [n];
for(int i=0; i<n;i++){
a[i] = scanner.nextInt();
}
left_max=a[0];
right_max=a[n-1];
for(int i=1; i<n;i++){
if(left_max<a[i]){
left_max=a[i];
left ++;
}
}
for(int i=n-2; i>=0;i--){
if(a[i]>right_max){
right_max = a[i];
right++;
}
}
System.out.println(left);
System.out.println(right);
}
}
왼쪽 끝(a[0])과 오른쪽 끝(a[n-1])을 각각의 변수에 저장하고 반복문 2개로 왼쪽에서 볼 경우와 오른쪽에서 볼 경우를 구해줍니다.
왼쪽에서 볼 경우 left_max의 값보다 큰 값이 나왔을 경우 left++을 해주어 보이는 트로피의 개수를 세어줍니다.
물론 left_max는 처음에 1로 초기화 되어있습니다. 첫번째 트로피는 반드시 보이기 때문입니다.
'코딩문제풀이 > 백준' 카테고리의 다른 글
[백준 1032번] 명령 프롬프트 Python 풀이 (0) | 2021.07.03 |
---|---|
[백준 1009번] 분산처리 Python 풀이 (0) | 2021.07.03 |
[백준 1439번] 뒤집기 Java 풀이 (0) | 2021.05.08 |
[백준 1434번] 책 정리 Java 풀이 (0) | 2021.05.08 |
[백준 11720번] 숫자의 합 Java 풀이 (0) | 2021.05.08 |