BAEKJOON

[ 백준 - JAVA ] 2562번 최댓값

yangheeb 2024. 11. 14. 14:47

문제 2562번


https://www.acmicpc.net/problem/2562

 

 

 

파이썬과 자바는 .. 비슷하다 싶으면서도 참 다르다 ...

오늘은 인덱스 번호를 출력하기 위해서 평소 습관대로 "배열이름.index" 를 사용하다가 .. 이게 아님을 알게 되었다.

 

자바에서는 파이썬처럼 list.index() 메소드로 특정 값의 인덱스를 바로 찾을 수 없다.

여러 방법이 존재하겠지만, 나는 반복문을 사용해 원하는 값을 찾는 메서드를 만드는 방식으로 습관을 만들어보겠다.

( 눈으로 코딩하는 건 정말 효율 떨어지는 공부임을 .. 또 반성합니다 )

 

 

 

문제 접근


  • 배열에 값을 입력하기
  • 반복문을 통해 배열에서 최댓값 찾기
  • 최댓값의 인덱스 찾기

 

1. 배열에 값을 입력하기

이제 배열을 정의하고, 값을 입력하는 것까지는 잘 하는 것 같다.

 

2. 반복문을 통해 배열에서 최댓값 찾기 

우선 첫번째 인덱스를 임의로 최댓값인 변수로 지정한 후 반복문을 돌린다.

임의로 지정한 변수보다 값이 클 경우 그 값을 새롭게 변수에 할당한다.

 

3. 최댓값의 인덱스 찾기

임의로 인덱스 변수에 값을 지정하고

반복문을 통해 출력되는 배열과 최댓값이 저장되어 있는 변수의 값이 같을 때 , 해당 인덱스 값을 인덱스 변수에 할당한다.

최댓값의 첫 번째 인덱스를 찾으면 반복문을 종료하기 위해 break를 사용한다.

 

 

최종 코드


import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        
        // 배열에 값을 입력하기
        int[] num = new int[9];
        for (int i = 0; i < num.length; i++) {
            num[i] = scanner.nextInt();
        }
        
        // 반복문을 통해 배열에서 최댓값 찾기
        int maxNumber = num[0]; // 임의로 지정
        for (int i = 0; i < num.length; i++) {
            if (maxNumber < num[i]) {
                maxNumber = num[i];
            }
        }
        
        // 최댓값의 인덱스 찾기
        int index = -1;
        for (int i = 0; i < num.length; i++) {
            if (num[i] == maxNumber) {
                index = i;
                break; // 최댓값의 첫 번째 인덱스를 찾으면 반복문 종료
            }
        }
        
        System.out.println(maxNumber);
        System.out.println(index+1); // 인덱스를 1부터 시작하도록 출력
    }
}

 

인덱스 번호를 찾기 위해서는 변수와 반복문을 사용할 것

다른 방법이 있다면 ... 다음에 알아보겠다 ... 하나라도 똑바로 적응하고 싶다

 

그리고 분명 이거보다 단순하게 짤 수 있는 방법 있을 것 같은데

일단 .. 스스로 구현해보는 것에 의의를 두고, 그 후에 좀 더 연습해보기

 

 

 

참고 자료


https://inpa.tistory.com/entry/JAVA-%E2%98%95-%EC%9E%90%EB%B0%94-%EB%B0%B0%EC%97%B4Array-%EB%AC%B8%EB%B2%95-%EC%9D%91%EC%9A%A9-%EC%B4%9D%EC%A0%95%EB%A6%AC

 

☕ JAVA 배열(Array) 완벽 다루기 가이드

배열 자료형 배열(array)은 프로그래밍에서 필수로 등장하는 요소이며 정말 자주 쓰이는 자료형이다. 배열은 하나의 블록안에 여러 데이터들을 모아 집합시켜 저장함으로써 데이터를 구조적으로

inpa.tistory.com