Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

개발자되기 프로젝트

알고리즘 문제 풀이: min, max 값 찾기 본문

Java/알고리즘

알고리즘 문제 풀이: min, max 값 찾기

Seung__ 2021. 5. 30. 15:06
  • 10개의 숫자를 입력받는다.
  • 10개의 숫자 중 가장 큰 값과 가장 작은 값을 찾는다.
  • 몇 번째 수인지 찾는다.
  • 반복문을 한 번만 사용한다.
  • 예 : 10, 65, 84, 22, 42, 100, 210, 85, 87, 32 가 주어진 경우
    max : 210, 7번 째
    min : 10, 1번 째
  • 얼마나 효율적인 알고리즘을 만드느냐가 중요함.
  • 하나의 변수를 지정해 주고, 해당 변수를 update를 진행.
  • Time complexity? 
    for문이 얼마나 중첩되어 있냐?
    for문이 도는데. 뭐에 dependent하냐? 
public class MinMaxProblem {

    public static void main(String[] args) {


        int n = 10;
        Scanner sc = new Scanner(System.in);
        int maxPos = 0;
        int minPos = 0;
        int max = sc.nextInt();
        int min = max;

        for(int i = 1; i < n; i++){

            int x = sc.nextInt();

            if(x>max){
                max = x;
                maxPos = i;
            }
            if(x < min){
                min = x;
                minPos = i;
            }

        }

        System.out.println("max값은 : " + max);
        System.out.println("위치는 : " + (maxPos+1)+ "번 째 입니다.");
        System.out.println("min값은  : " + min);
        System.out.println("위치는  " + (minPos+1) + "번 째 입니다.");
    }


}

 

10, 65, 84, 22, 42, 100, 210, 85, 87, 32 를 순서대로 입력한 결과이다.

max값은 : 210
위치는 : 7번 째 입니다.
min값은  : 10
위치는  1번 째 입니다.

 

time complexity : O(n), 문제를 해결하기 위한 단계의 수와 입력값 n이 1:1 관계, linear

 

Comments