문제
풀이방법
- 입력으로 들어오는 값 중 최소값과 최대값을 구하여 곱하면 N을 구할 수 있음
- 서로 다른 입력방법(Scanner와 BufferedReader)에 따라 다르게 풀이 가능
- Scanner
Scanner in = new Scanner(System.in);
- BufferedReader (입력의 경우 시간 더 빠름, 입력 데이터가 많을수록 더 차이남)
BufferedReader 는 문자열을 한 줄로 읽기 때문에 입력된 숫자 구분을 위해 공백을 기준으로 문자열을 분리해주어야하므로 StringTokenizer 을 사용해야 한다.
코드
1. Scanner
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int min = Integer.MAX_VALUE;
int max = Integer.MIN_VALUE;
while (n-- > 0) {
int k = in.nextInt();
if (k < min) {
min = k;
}
if (k > max) {
max = k;
}
/*
min = k < min ? k : min;
max = k > max ? k : max;
*/
}
System.out.println(min * max);
}
}
2. BufferedReader
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int max = Integer.MIN_VALUE;
int min = Integer.MAX_VALUE;
StringTokenizer st = new StringTokenizer(br.readLine()," ");
while(n-- > 0) {
int k = Integer.parseInt(st.nextToken());
max = k > max ? k : max;
min = k < min ? k : min;
}
System.out.println(max * min);
}
}
'코딩테스트' 카테고리의 다른 글
[백준 / 실버 5] 1652 : 누울 자리를 찾아라 (JAVA) (0) | 2023.03.11 |
---|---|
[백준 / 브론즈2] 1100 : 하얀 칸 (JAVA) (0) | 2023.03.09 |
[백준 / 브론즈2] 16561 : 3의 배수 (JAVA) (0) | 2023.02.26 |
[백준 / 실버4] 1120 : 문자열 (JAVA) (0) | 2023.02.23 |
[백준 / 브론즈2] 1075 : 나누기 (JAVA) (0) | 2023.02.22 |