2021.07.29

starlikedh
|2021. 7. 29. 13:06

백준 5단계(1 ~2번 문제)

1번 문제의 경우 N 개의 숫자가 주어졌을 때 최대값, 최소값 구하는 문제였다.
모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수라는 조건이 있어서,
최소값을 저장할 변수 min과 최대값을 저장할 변수 max에 이 값들을 초기값으로 설정해 주었다.

정수형 배열 하나 선언하고 for문을 돌면서  min, max 값이 arr[i]값 비교해주면 해결.

Scanner sc = new Scanner(System.in);
int min = -1000000;
int max = 1000000;

int n = sc.nextInt();
int[] arr = new int[n];

for(int i = 0; i < n; i++) {
    arr[i] = sc.nextInt();
    if (max < arr[i]) {
        max = arr[i];
    }
    if (min > arr[i]) {
        min = arr[i];
    }
}
System.out.println(min + " " + max);

2번 문제의 경우 9개의 서로 다른 자연수가 주어질 때 최대값과 그 위치를 구하는 문제.

앞선 문제에서 최대값 구하는 부분은 동일하게 작성해주고,
위치를 찾기 위해 새로운 정수형 변수 하나 만들어서 for문 내의 i값을 새로 만든 정수형 변수에 저장해주기.

Scanner sc = new Scanner(System.in);

int max = 0;
int n = 9;

int[] arr = new int[9];
int maxIndex = 0;

for(int i = 0; i < 9; i++) {
    arr[i] = sc.nextInt();
    if (max < arr[i]) {
        max = arr[i];
        maxIndex = i;
    }
}

System.out.println(max);
System.out.println(maxIndex + 1);

나의 경우 for문을 돌 때 i의 초기값을 0으로 지정해주어서 마지막에 maxIndex +1로 출력해주었다.

'Algorithm' 카테고리의 다른 글

2021.08.03  (0) 2021.08.03
2021.07.31  (0) 2021.07.31
2021.07.22  (0) 2021.07.22
2021.07.21  (0) 2021.07.21
2021.07.20  (0) 2021.07.20