알고리즘/Java 코딩 테스트 준비

[Java] 보이는 학생(키 순서대로 세우기)

Dev dreamer 2023. 1. 31. 10:03

맨 앞에 선생님이 서있을 때 일렬로 세운 모든 학생을 보도록 해라.

 

뒤에 학생이 앞에 서 있는 학생보다 크면 보이고 뒤에 학생이 작거나 같으면 안보인다.

 

선생님이 볼 수 있는 최대 학생 수를 구하여라.

 

 

입력

8

130 135 148 140 145 150 150 153

 

출력

5

 

💡 1. 내 풀이 과정 설명


배열을 solution 메소드에 넘겨주고

 

맨 처음 0 번째 학생은 무조건 보이니까 보이는 학생수에 항상 1을 더해준 후에

for 문을 돌릴때 1번 부터 돌려준다.

뒤에 학생이 만약 더 크다면 기준 키를 바꿔주고 보이는 학생수를 1더해준다.

 

for 문을 모두 돌리고 나면 answer 에 해당 보이는 학생수를 넣어 반환해주면 된다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {

	public int solution(int[] numarr) {
		
		int answer;
		
		int temp=numarr[0];
		int cnt=1;
		
		for(int i=1; i<numarr.length; i++) {
			
			if(temp<numarr[i]) {
				temp=numarr[i];
				cnt++;
			}
		}
		answer=cnt;
		
		return answer;
		
	}
	
	
	public static void main(String[] args) throws NumberFormatException, IOException {
		
		Main T = new Main();
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		int a = Integer.parseInt(br.readLine());
		
		StringTokenizer st = new StringTokenizer(br.readLine());
		
		int[] numarr=new int[a];
		
		
		for(int i=0; i<a; i++) {
			numarr[i]=Integer.parseInt(st.nextToken());
		}
		
		System.out.println(T.solution(numarr));
	}
}

 

 

💡 2. 강사님 풀이과정


풀이 과정 비슷해서 해석 생략.

 

 

코테 관련해서 많이 부담스러웠는데 강의를 통해 푸는 방법들을 배우니 이 시간이 즐겁습니다.

진짜 기능하나하나 다양한 방법으로 잘 가르쳐주십니다.

출처 : 자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비 대시보드 - 인프런 | 강의 (inflearn.com)