Javadocs

[ Programmers ] 가장 큰 수 찾기 (Java) 본문

SelfStudy/Programmers(코딩테스트)

[ Programmers ] 가장 큰 수 찾기 (Java)

Javatist 2023. 3. 21. 13:26

https://school.programmers.co.kr/learn/courses/30/lessons/120899

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

[ 문제 설명 ]
정수배열 array가 매개변수로 주어질 때, 가장 큰 수와 그 수의 인덱스를 담은 배열을 return 하도록 solution 함수를 완성해보세요.
[ 제한 사항 ]

  • 1 ≤ array의 길이 ≤ 100
  • 0 ≤ array 원소 ≤ 1,000
  • array에 중복된 숫자는 없습니다.

[ 입출력 예 ]

arrayresult
[1, 8, 3][8, 1]
[9, 10, 11, 8][11, 2]

[ 입출력 예 설명 ]
입출력 예 #1

  • 1, 8, 3 중 가장 큰 수는 8이고 인덱스 1에 있습니다.

입출력 예 #2

  • 9, 10, 11, 8 중 가장 큰 수는 11이고 인덱스 2에 있습니다.

[ 풀이 #1 ]

import java.util.Arrays;

public class FindMax {
	public static int[] solution(int[] array) {
		
		int [] answer = new int [2];
		int max = Integer.MIN_VALUE;	// max 최댓값을 구하기 위해 Integer.MIN_VALUE 사용. 
        int idx = 0;
        
        for (int i = 0; i < array.length; i++) {
        	if (max < array[i]) {	// max 값을 찾는 과정
        		max = array[i];
        		idx = i;
        	}
        }
        answer[0] = max;
        answer[1] = idx;

//        System.out.println(idx);
//        System.out.println(max);
//        System.out.println(Arrays.toString(answer));
        return answer;
    }

[ 풀이 #2 ]

public class FindMax2 {
	public int[] solution(int[] array) {
    	int[] answer = new int[2];
    	int max = 0;
    	for (int i = 0; i < array.length; i++) {
        	// 풀이 #1에서 if조건문을 Math.max로 사용
    		max = Math.max(max, array[i]);
        	if (max == array[i]) {
        	answer[1] = i;
        	}
   		}
    	answer[0] = max;
        
   		return answer;
	}
}
Comments