티스토리 뷰
728x90
백준 10818 : 최대, 최소
StringTokenizer.hasMoreTokens()
- 토큰이 남아있으면 true, 비어있으면 false
Arrays.sort(array)
- array를 정렬해준다.
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
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());
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int index = 0;
int[] arr = new int[N];
while(st.hasMoreTokens()) { // 토큰이 남아있으면 true, 비어있으면 false
arr[index] = Integer.parseInt(st.nextToken());
index++;
}
Arrays.sort(arr);
System.out.println(arr[0] + " " + arr[N - 1]);
}
}
배열을 사용하지 않는 방법
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
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());
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int max = -1000001;
int min = 1000001;
while(st.hasMoreTokens()) {
int val = Integer.parseInt(st.nextToken());
if(val > max) max = val;
if(val < min) min = val;
}
System.out.println(min + " " + max);
}
}
백준 3052 : 나머지
HashSet
- JAVA Collections 중 Set의 파생클래스
1. 중복 원소를 허용하지 않는다.
2. 순서 개념을 갖지 않는다. → Collections.sort() 메소드 사용 불가
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.HashSet;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
HashSet<Integer> hs = new HashSet<Integer>();
for(int i = 0; i < 10; i++) {
hs.add(Integer.parseInt(br.readLine()) % 42);
}
System.out.println(hs.size());
}
}
백준 1546 : 평균
배열을 사용하지 않는 방법
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
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());
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
double max = -1.0;
double sum = 0.0;
for(int i = 0; i < N; i++) {
double value = Double.parseDouble(st.nextToken());
if(value > max) max = value;
sum += value;
}
System.out.println(((sum / max) * 100.0) / N);
}
}
배열을 사용할 경우 Arrays.sort(array) 메소드를 사용하면 된다.
백준 4344 : 평균은 넘겠지
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int C = Integer.parseInt(br.readLine());
StringTokenizer st;
int[] arr;
for(int i = 0; i < C; i++) {
st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
arr = new int[N];
double sum = 0.0;
for(int j = 0; j < N; j++) {
int val = Integer.parseInt(st.nextToken());
arr[j] = val;
sum += val;
}
double avg = sum / N;
double count = 0.0;
for(int j = 0; j < N; j++) {
if(arr[j] > avg) count++;
}
System.out.printf("%.3f%%\n", (count / N) * 100);
}
}
}
출력 시 BufferedWriter 사용
String.format()
- printf() 메소드와 비슷하게 포멧을 이용하여 String을 표현할 수 있게 한다.
import java.io.*;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int C = Integer.parseInt(br.readLine());
StringTokenizer st;
int[] arr;
for(int i = 0; i < C; i++) {
st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
arr = new int[N];
double sum = 0.0;
for(int j = 0; j < N; j++) {
int val = Integer.parseInt(st.nextToken());
arr[j] = val;
sum += val;
}
double avg = sum / N;
double count = 0.0;
for(int j = 0; j < N; j++) {
if(arr[j] > avg) count++;
}
bw.write(String.format("%.3f%%\n", (count / N) * 100));
}
bw.flush();
bw.close();
}
}
728x90
'Algorithm' 카테고리의 다른 글
[JAVA] 문자(열)을 다루는 다양한 방법 (0) | 2021.03.31 |
---|---|
[JAVA] StringBuilder - 출력 메소드 호출 빈도 낮추기 (0) | 2021.03.31 |
[JAVA] 백준 - while문 (0) | 2021.03.29 |
[JAVA] 백준 - if문 (0) | 2021.03.29 |
[JAVA] 백준 - 입출력과 사칙연산 (0) | 2021.03.29 |
댓글
공지사항
최근에 올라온 글