10818 - 최소, 최대
import java.io.BufferedReader;
import java.io.IOException;
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));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int N = Integer.parseInt(st.nextToken());
int max = -1000000, min = 1000000;
st = new StringTokenizer(br.readLine(), " ");
for (int i = 0; i < N; i++) {
int value = Integer.parseInt((st.nextToken()));
if (value > max)
max = value;
if (value < min)
min = value;
}
System.out.println(min + " " + max);
}
}
2577 - 숫자의 개수
방법 1 )
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int A = sc.nextInt();
int B = sc.nextInt();
int C = sc.nextInt();
String multi = Integer.toString(A * B * C);
for (int i = 0; i < 10; i++) {
int count = 0;
for (int j = 0; j < multi.length(); j++) {
if ((multi.charAt(j) - '0') == i) {
count++;
}
}
System.out.println(count);
}
}
}
방법 2 ) array 사용
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int A = sc.nextInt();
int B = sc.nextInt();
int C = sc.nextInt();
String multi = String.valueOf(A * B * C);
int[] arr = new int[10];
for (int i = 0; i < multi.length(); i++) {
arr[(multi.charAt(i) - '0')]++;
}
for (int v : arr) {
System.out.println(v);
}
}
}
Tips
1. charAt()은 문자열에서 index값에 위치한 값을 꺼내올 수 있다.
2. String.valueOf와 Integer.toString은 String -> int 형으로 바꿔준다.
3. char에서 '0'을 빼주면 아스키값을 계산할 필요 없이 자동으로 int형이 된다.
4. for (int v : arr) 을 하게 되면 arr 끝까지 for문을 돈다.
3052 - 나머지 (Hashset)
import java.util.HashSet;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
HashSet<Integer> h = new HashSet<Integer>();
for (int i = 0; i < 10; i++) {
h.add(Integer.parseInt(br.readLine()) % 42);
}
System.out.print(h.size());
}
}
Tips
1. Hashset은 중복이 있으면 배열에 저장하지 않는다.
2. HashSet에서 add는 추가
3. HashSet의 size는 중복을 제거한 수
4344 - 평균은 넘겠지
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[] arr;
int testcase = Integer.parseInt(br.readLine());
StringTokenizer st;
for(int i = 0 ; i < testcase ; i++) {
st = new StringTokenizer(br.readLine()," "); // 학생 수 및 성적 입력
int N = Integer.parseInt(st.nextToken()); //학생 수
arr = new int[N];
double sum = 0; // 성적 누적 합 변수
// 성적 입력부분
for(int j = 0 ; j < N ; j++) {
int val = Integer.parseInt(st.nextToken()); // 성적 저장
arr[j] = val;
sum += val; // 성적 누적 합
}
double mean = (sum / N) ;
double count = 0; // 평균 넘는 학생 수 변수
// 평균 넘는 학생 비율 찾기
for(int j = 0 ; j < N ; j++) {
if(arr[j] > mean) {
count++;
}
}
System.out.printf("%.3f%%\n",(count/N)*100);
}
}
}
br.readLine()은 한 줄을 읽는 것.
'Algorithm(알고리즘) > Java' 카테고리의 다른 글
Java 백준 단계별 풀기 (기초 문법 정리) 문자열 (0) | 2020.12.26 |
---|---|
Java 백준 단계별 풀기 (기초 문법 정리) 함수 (0) | 2020.12.24 |
Java 백준 단계별 풀기 (기초 문법 정리) for문, while문 (0) | 2020.12.23 |
Java 백준 단계별 풀기 (기초 문법 정리) if문 (0) | 2020.12.22 |
Java 백준 단계별 풀기 (기초 문법 정리) 입출력과 사칙연산 (0) | 2020.12.22 |