본문 바로가기
알고리즘 풀이

[복습][백준]2562번: 최댓값 - java 풀이

by 코디드 2023. 6. 13.

오랜만에 다시 풀어봤다.

 

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

public class Main {

	public static void main(String[] args) throws IOException{
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		int max=1;
		int idx=0;
		
		int arr[] = new int[9];
		
		for(int i=0; i<9; i++) {
			arr[i] = Integer.parseInt(br.readLine());
			
			if(arr[i]>max) {
				max=arr[i];
				idx=i+1;
			}
		}
		System.out.println(max+"\n"+idx);
		
	}
}

 

배열을 이용해서는 빠르게 풀수 있었다.

배열을 이용하지 않고 풀어보려고 했는데, 어떻게 해야하는지 생각이 나지 않았다.

 

 

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

public class Main {

	public static void main(String[] args) throws IOException{
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		int max=1;
		int cnt=0;
		
		for(int i=0; i<9; i++) {
			int num = Integer.parseInt(br.readLine());
			
			if(num>max) {
				max=num;
				cnt=i+1;
			}
			
		}
		
		System.out.println(max+"\n"+cnt);
	}
}

 

정말 놀랍게도 배열을 사용하지 않은것을 제외하고는 풀이 방법이 하나도 바뀌지 않았다.

배열을 사용하지 않고 i의 값을 어떻게 저장할지에 대한 고민을 한데서 꼬였다. 입력 받은 수가 이전에 입력받은 값보다 크면 자동으로 저장이 되고 그렇지 않을 경우 저장되지 않는다는 것까지는 생각을 했다. 하지만, 또다시 그 이후에 입력받은 값이 최댓값인 경우, 이전에 저장되지 않은 경우가 몇번째인지 기록하면서, 저장된 현재의 값이 몇번째인지를 어떻게 기록할지 고민을 했었는데, 그때는 i가 그 숫자에 해당하는 값이 자동으로 저장되기 때문에 애초에 고민할게 아닌 걸 고민하고 있었던 것이다. 

 

오히려 어렵게 생각을 해서 쉽게 풀지 못하는 이런 경우에는 참 허무한데, 이 또한 문제를 해결하지 못한것이기 때문에 부족함을 인정하고 배워나가는 태도가 중요한것 같다.