알고리즘/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)