728x90
반응형
2. 보이는 학생
설명
선생님이 N명의 학생을 일렬로 세웠습니다. 일렬로 서 있는 학생의 키가 앞에서부터 순서대로 주어질 때, 맨 앞에 서 있는
선생님이 볼 수 있는 학생의 수를 구하는 프로그램을 작성하세요. (앞에 서 있는 사람들보다 크면 보이고, 작거나 같으면 보이지 않습니다.)
입력
첫 줄에 정수 N(5<=N<=100,000)이 입력된다. 그 다음줄에 N명의 학생의 키가 앞에서부터 순서대로 주어진다.
출력
선생님이 볼 수 있는 최대학생수를 출력한다.
예시 입력 1
8
130 135 148 140 145 150 150 153
예시 출력 1
5
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner kb=new Scanner(System.in);
int n = kb.nextInt();
int [] arr = new int[n];
int answer=1;
int tmp=0;
int tmp2=0;
for(int i=0;i<n;i++){
arr[i]=kb.nextInt();
}
tmp=arr[0];
for(int i=0;i<n;i++){
if(tmp<arr[i]){
answer++;
tmp=arr[i];
}
}
System.out.println(answer);
//앞에 서있는 사람보다 크면 보이고, 작거나 같으면 보이지 않는다.
//앞 사람>뒷사람 +1, 앞사람 <=뒷사람 같으면 0으로 초기화
}
}
import java.util.Scanner;
public class Main {
public int solution(int[] arr){
int answer=0;
int n=arr.length;
int max=Integer.MIN_VALUE;
for(int i=0;i<n;i++){
if(max<arr[i]) {
max=arr[i];
answer++;
}
}
return answer;
}
public static void main(String[] args){
Main T=new Main();
Scanner kb=new Scanner(System.in);
int n = kb.nextInt();
int [] arr = new int[n];
for(int i=0;i<n;i++) arr[i]=kb.nextInt();
System.out.println(T.solution(arr));
return ;
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner kb=new Scanner(System.in);
int n = kb.nextInt();
int[] arr = new int[n];
for(int i=0;i<n;i++){
arr[i]=kb.nextInt();
}
System.out.println(solution(arr));
}
static int solution(int[] arr){
int answer=1;
int tmp=arr[0];
for(int i=1;i<arr.length;i++){
if(tmp<arr[i]) {
answer++;
tmp=arr[i];
}
}
return answer;
}
}
+) 세련된 풀이
import java.util.*;
class Main {
public int solution(int n, int[] arr) {
int answer = 1, max = arr[0];
for (int i = 1; i < n; i++) {
if (arr[i] > max) {
max = arr[i];
answer++;
}
}
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner kb = new Scanner(System.in);
int n = kb.nextInt();
int[] arr = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = kb.nextInt();
}
System.out.print(T.solution(n, arr));
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner in=new Scanner(System.in);
int n=in.nextInt();
int[] arr = new int[n];
int answer=0;
int tmp=Integer.MIN_VALUE;
for(int i=0;i<n;i++){
arr[i]=in.nextInt();
if(arr[i]>tmp) {
tmp=arr[i];
answer++;
}
}
System.out.println(answer);
}
}
728x90
반응형
'Java > Java 알고리즘 인프런' 카테고리의 다른 글
[Ch.02 - Array] 04. 피보나치 수열 (0) | 2022.05.17 |
---|---|
[Ch.02 - Array] 03. 가위 바위 보 (0) | 2022.05.17 |
[Ch.02 - Array] 01. 큰 수 출력하기 (0) | 2022.05.17 |
[Ch.01 - String] 12. 암호 (+Integer.parseInt( ,2)) (0) | 2022.05.16 |
[Ch.01 - String] 11. 문자열 압축 (+ 공백 활용) (0) | 2022.05.16 |