Java Challenge
1차원 배열
백준 10807
- 숫자를 입력받아 특정수가 몇개 존재하는지 출력하는 프로그램을 작성하시오
package 배열;
import java.util.Scanner;
public class BOJ10807 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int answer = 0;
int[]arrys = new int[n];
for(int i = 0;i<arrys.length;i++){
arrys[i] = scanner.nextInt();
}
int find = scanner.nextInt();
for(int i = 0;i<arrys.length;i++){
if (arrys[i] == find){
answer++;
}
}
System.out.println(answer);
}
}
백준 10871
- 정수 N개로 이루어진 수열 A와 정수 X가 주어진다. 이때, A에서 X보다 작은 수를 모두 출력하는 프로그램을 작성하시오.
package 배열;
import java.util.Scanner;
public class BOJ10871 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n,x;
n = scanner.nextInt();
x = scanner.nextInt();
int []arrays = new int[n];
for(int i=0; i<arrays.length;i++){
arrays[i] = scanner.nextInt();
if (arrays[i] < x){
System.out.print(arrays[i] + " ");
}
}
}
}
백준 10818
- N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오.
package 배열;
import java.util.Scanner;
public class BOJ10818 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int []arrays = new int[n];
for(int i = 0; i<arrays.length;i++){
arrays[i] = scanner.nextInt();
}
int max = arrays[0];
int min = arrays[0];
for(int i=1;i<arrays.length;i++){
if (max < arrays[i]){
max = arrays[i];
}
if (min > arrays[i]){
min = arrays[i];
}
}
System.out.println(min + " " + max);
}
}
백준 2562
- 9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오.
package 배열;
import java.util.Scanner;
public class BOJ2562 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int []arrs = new int[9];
int answer,idx;
answer = 0;
idx = 0;
for(int i = 0; i<arrs.length;i++){
arrs[i] = scanner.nextInt();
if (answer < arrs[i]) {
answer = arrs[i];
idx = i;
}
}
System.out.println(answer);
System.out.println(idx+1);
}
}
백준 10810
- 공을 어떻게 넣을지가 주어졌을 때, M번 공을 넣은 이후에 각 바구니에 어떤 공이 들어 있는지 구하는 프로그램을 작성하시오.
package 배열;
import java.util.Scanner;
public class BOJ10810 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int m = scanner.nextInt();
int []arrs = new int[n];
int a,b,c;
for(int i = 0; i<m;i++){
a = scanner.nextInt();
b = scanner.nextInt();
c = scanner.nextInt();
for(int j = a-1;j <b; j++){
arrs[j] = c;
}
}
for(int k = 0; k<arrs.length;k++){
System.out.print(arrs[k] + " ");
}
}
}
백준 10813
- 공을 어떻게 바꿀지가 주어졌을 때, M번 공을 바꾼 이후에 각 바구니에 어떤 공이 들어있는지 구하는 프로그램을 작성하시오.
package 배열;
import java.util.Scanner;
public class BOJ10813 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int m = scanner.nextInt();
int []arrs = new int[n];
for(int i = 0; i<n;i++){
arrs[i] = i+1;
}
int temp = 0;
int a,b;
for(int j = 0; j<m;j++){
a = scanner.nextInt();
b = scanner.nextInt();
a -=1;
b -=1;
temp = arrs[a];
arrs[a] = arrs[b];
arrs[b] = temp;
}
for(int k = 0; k <arrs.length;k++){
System.out.print(arrs[k] + " ");
}
}
}
백준 5597
- 교수님이 내준 특별과제를 28명이 제출했는데, 그 중에서 제출 안 한 학생 2명의 출석번호를 구하는 프로그램을 작성하시오.
package 배열;
import java.util.Scanner;
public class BOJ5597 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int []arrs = new int[30];
int n;
for(int i =0; i<28;i++){
n = scanner.nextInt();
arrs[n-1] = 1;
}
for(int i =0; i<30;i++){
if (arrs[i] == 0){
System.out.println(i+1);
}
}
}
}
백준 3052
- 수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오.
package 배열;
import java.util.Scanner;
public class BOJ3052 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int []arrs = new int[42];
int n;
int answer = 0;
for(int i =0; i<10;i++){
n = scanner.nextInt();
n = n % 42;
arrs[n]++;
}
for(int i=0; i<arrs.length;i++){
if (arrs[i] >= 1){
answer ++;
}
}
System.out.println(answer);
}
}
백준 10811
- 바구니의 순서를 어떻게 바꿀지 주어졌을 때, M번 바구니의 순서를 역순으로 만든 다음, 바구니에 적혀있는 번호를 가장 왼쪽 바구니부터 출력하는 프로그램을 작성하시오.
package 배열;
import java.util.Scanner;
public class BOJ10811 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int m = scanner.nextInt();
int []arrs = new int[n];
for(int i = 0; i<n;i++){
arrs[i] = i+1;
}
int a,b,temp;
int len_;
for(int i = 0; i < m; i++){
a = scanner.nextInt();
b = scanner.nextInt();
a--;
b--;
len_ = (a+b+1) / 2;
for(int j = a; j <len_;j++){
temp = arrs[j];
arrs[j] = arrs[b];
arrs[b] = temp;
b--;
}
}
for (int k=0; k<arrs.length;k++){
System.out.print(arrs[k] + " ");
}
}
}
백준 1546
- 자기 점수 중에 최댓값을 골랐다. 이 값을 M이라고 한다. 그리고 나서 모든 점수를 점수/M*100으로 고쳤다.
- 세준이의 성적을 위의 방법대로 새로 계산했을 때, 새로운 평균을 구하는 프로그램을 작성하시오.
package 배열;
import java.util.Scanner;
public class BOJ1546 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
double []arrs = new double[n];
int max = 0;
for(int i = 0; i<n; i++){
arrs[i] = scanner.nextInt();
if (max <arrs[i]){
max = (int)arrs[i];
}
}
double sum = 0;
for(int i =0; i<n;i++){
arrs[i] = arrs[i]/max *100;
sum += arrs[i];
}
System.out.println(sum / n);
}
}