Notice
Recent Posts
Recent Comments
Link
04-27 08:24
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
Tags
- 맥북
- spring
- 우리FIS아카데미 #
- route 53
- 로드밸런스
- https
- jdk
- 맥OS
- 우리에프아이에스 #
- Java
- dbeaver
- 클라우드 서비스 개발 #
- M2
- 우리FIS아카데미
- 우리에프아이에스
- 맥
- 우리FISA #
- K-디지털트레이닝
- 도메인
- springboot
- HTTP
- mysql
- AWS
- 글로벌소프트웨어캠퍼스
- 우리FISA
- Gradle
- 클라우드 서비스 개발
- 리눅스
- sts
Archives
- Today
- Total
<<개발일지>>
[배열] 2. 보이는 학생 본문
2. 보이는 학생
설명
선생님이 N명의 학생을 일렬로 세웠습니다. 일렬로 서 있는 학생의 키가 앞에서부터 순서대로 주어질 때, 맨 앞에 서 있는
선생님이 볼 수 있는 학생의 수를 구하는 프로그램을 작성하세요. (앞에 서 있는 사람들보다 크면 보이고, 작거나 같으면 보이지 않습니다.)
입력
첫 줄에 정수 N(5<=N<=100,000)이 입력된다. 그 다음줄에 N명의 학생의 키가 앞에서부터 순서대로 주어진다.
출력
선생님이 볼 수 있는 최대학생수를 출력한다.
예시 입력 1
8
130 135 148 140 145 150 150 153
예시 출력 1
5
<<풀이>>
-본인-
우선 나의 풀이다. 이 문제는 정말 쉽게 푼거 같다. 하지만 강의 듣기 전이라 ㅋㅋ 긴장의 끈을 놓칠 수 없다.
import java.util.Scanner;
class Main {
public int solution(int[] arr) {
int count = 1;
int max = arr[0];
for (int i = 0; i < arr.length - 1; i++) {
if (arr[i + 1] > max ) {
count++;
max = arr[i + 1];
}
}
return count;
}
public static void main(String[] args) {
Main T = new Main();
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int[] arr = new int[n];
for (int i = 0; i < n; i++) {
int height = in.nextInt();
arr[i] = height;
}
System.out.println(T.solution(arr));
}
}
우선 max 값을 초기화 하고 이전 키보다 크면 max가 되게 하여 그 다음 값과 비교하여 count 가 증가할 수 있게끔 구성했다.
-강사님-
오늘은 안 적겠다 ㅋㅋ 강사님 풀이랑 나의 풀이랑 같다 ㅎㅎ 물론 쉬운 문제였지만 매번 달랐던 사고의 흐림이 오늘은 똑같다는게 신기하다 ㅋㅋ
<<추가 공부>>
int min = Integer.MAX_VALUE;
int max = Integer.MIN_VALUE;
이번 문제에는 크게 필요는 없지만 최대 최소구할 때 이를 활용해서 사용하기도 한다.
'코딩테스트' 카테고리의 다른 글
[배열] 4. 피보나치 수열 (1) | 2023.12.12 |
---|---|
[배열] 3. 가위 바위 보 (0) | 2023.12.12 |
[배열] 1. 큰 수 출력하기 (1) | 2023.12.08 |
[문자열] 12. 암호 (1) | 2023.12.07 |
[문자열] 11. 문자열 압축 (1) | 2023.12.07 |