Recent Posts
Link
250x250
오늘보다 더 나은 내일의 나에게_
자바 알고리즘 문제 풀이 Array Q02_보이는 학생 본문
728x90
설명
선생님이 N명의 학생을 일렬로 세웠습니다. 일렬로 서 있는 학생의 키가 앞에서부터 순서대로 주어질 때, 맨 앞에 서 있는
선생님이 볼 수 있는 학생의 수를 구하는 프로그램을 작성하세요. (앞에 서 있는 사람들보다 크면 보이고, 작거나 같으면 보이지 않습니다.)
입력
첫 줄에 정수 N(5<=N<=100,000)이 입력된다. 그 다음줄에 N명의 학생의 키가 앞에서부터 순서대로 주어진다.
출력
선생님이 볼 수 있는 최대학생수를 출력한다.
예시 입력1
예시 출력8
130 135 148 140 145 150 150 1535
코드
내가 입력한 코드
package Array; import java.util.Scanner; public class Q02 { public int solution(int[] arr) { int answer = 1; for (int i = 1; i < arr.length; i++) { boolean c = true; for(int j = 0;j < i;j++) { if(arr[i]<=arr[j]) { c = false; break; } } if(c) { answer++; } } return answer; } public static void main(String[] args) { Q02 T = new Q02(); Scanner kb = new Scanner(System.in); int num = kb.nextInt(); int[] arr = new int[num]; for (int i = 0; i < num; i++) { arr[i] = kb.nextInt(); } System.out.println(T.solution(arr)); } }
해설 코드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)); } }
풀이 및 정리
int 배열의 첫번째 학생은 무조건 보이니 answer 초기값은 1이다.
max라는 임의의 변수를 선언하고 arr첫번째 인덱스값으로 초기화 시켜준다.
반복문에서 arr과 max값을 비교하고 arr[i]값이 max보다 크면 answer값을 1씩 증가시키고
max에 arr[i]값을 대입시켜준다.
728x90
'ALGORITHM > inflearn_javaAlgorithm' 카테고리의 다른 글
자바 알고리즘 문제 풀이 Array Q04_피보나치 수열 (0) | 2022.02.10 |
---|---|
자바 알고리즘 문제 풀이 Array Q03_가위 바위 보 (0) | 2022.02.09 |
자바 알고리즘 문제 풀이 Array Q01_큰 수 출력하기 (0) | 2022.02.07 |
자바 알고리즘 문제 풀이 String Q12_암호 (0) | 2022.02.06 |
자바 알고리즘 문제 풀이 String Q11_문자열 압축 (0) | 2022.02.04 |
Comments