[Java] 프로그래머스(level-2) - 최댓값과 최솟값

입출력 예시
Input-1
“1 2 3 4”
Output-1
“1 4”
Input-2
“-1 -2 -3 -4”
Output-2
“-4 -1”
Input-3
“-1 -1”
Output-3
“-1 -1”
문제 풀이
주어진 문자열의 숫자 중에서 최솟값과 최댓값을 찾아야 한다.
문자열을 순회하며 현재 수와 비교하여 가장 크고, 가장 작은 값을 구하면 된다.
한 번 코드로 작성해보자.
1
2
3
String[] arr = s.split(" ");
int max = Integer.parseInt(arr[0]);
int min = Integer.parseInt(arr[0]);
먼저 공백이 포함된 문자열에서 공백을 기준으로 잘라 배열로 만들었고, 최댓값과 최솟값을 저장할 max와 min 변수를 초기화하였다.
1
2
3
4
5
for(int i=0; i<arr.length; i++) {
if(max < Integer.parseInt(arr[i])) max = Integer.parseInt(arr[i]);
if(min > Integer.parseInt(arr[i])) min = Integer.parseInt(arr[i]);
}
return min + " " + max;
위에서 자른 배열의 숫자들을 순회하며 최댓값과 최솟값을 구하고 문제 요구사항대로 “(최소값) (최대값)” 형태로 반환하자.
작성 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import java.util.*;
class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
long start = System.currentTimeMillis();
solution(s);
long end = System.currentTimeMillis();
System.out.println("\n수행시간 = " + (end-start));
}
public static String solution(String s) {
String[] arr = s.split(" ");
int max = Integer.parseInt(arr[0]);
int min = Integer.parseInt(arr[0]);
for(int i=0; i<arr.length; i++) {
if(max < Integer.parseInt(arr[i])) max = Integer.parseInt(arr[i]);
if(min > Integer.parseInt(arr[i])) min = Integer.parseInt(arr[i]);
}
return min + " " + max;
}
}
회고
- 이제는 어떻게 최대값과 최소값을 구해야 할지 어느정도 감이 잡힌 것 같다.