알고리즘-1.나열된 수에서 최소값과 최대값 구하기

윤재열·2022년 1월 16일
0

algorithm

목록 보기
1/18

문제 정의

  • 여러 개의 수가 배열에 있을 때 그 중 가장 큰 값과 가장 작은 값을 찾는다.

  • 배열의 몇 번째에 있는지 순서를 찾는다.

  • 반복문을 한번만 사용하여 문제를 해결한다.

  • 수의 예 : [10, 55, 23, 2, 79, 101, 16, 82, 30, 45]

해결하기

-배열에 있는 수 중 맨 처음에 있는 값을 max와 min으로 가정하고, 배열의 마지막 숫자까지 비교하면서 더 큰 수나 더 작은 수가 나올때 max와 min의 값을 바꾸도록 한다.

package Ex1;

public class MinMaxProblem {
    public static void main(String[] args) {
        int[] numbers ={10, 55, 23, 2, 79, 101, 16, 82, 30, 45};

        int min = numbers[0];   //배열에 있는 수 중 맨 처음에 있는 값을 max,min으로 가정하기!
        int max = numbers[0];
        int minPos = 0; //최소값의 배열이 몇번째인지?
        int maxPos = 0; //최대값의 배열이 몇번쨰에 있는지?

        for(int i=1; i<numbers.length; i++){    //자기자신은 제외해야하므로 1부터 시작하기
            if(min>numbers[i]){ //만약 numbers[0]>numbers[i] 이라면
                min = numbers[i];   //min =numbers[i]로 바뀐다.
                minPos = i+1;   //minPos는 i+1씩 한다.(배열은 0부터 시작하기때문에)
            }
            if(max <numbers[i]){
                max = numbers[i];
                maxPos = i+1;
            }
        }
        System.out.println("가장 작은값 : " +min + "이고, 위치는" + minPos +"번쨰입니다.");
        System.out.println("가장 큰값 : " +max + "이고, 위치는" + maxPos +"번쨰입니다.");
    }
}

profile
블로그 이전합니다! https://jyyoun1022.tistory.com/

0개의 댓글

관련 채용 정보