티스토리 뷰
10818. 최소, 최대
N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int min, max;
int n = sc.nextInt();
int []arr = new int[n];
min = 1000000;
max = -1000000;
for(int i=0; i<n; i++) {
arr[i] = sc.nextInt();
if(min>arr[i]) min=arr[i];
if(max<arr[i]) max=arr[i];
}
System.out.println(min+" "+max);
}
}
02562. 최댓값
9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하시오.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int max, idx;
int []arr = new int[9];
idx = -1;
max = -1;
for(int i=0; i<9; i++) {
arr[i] = sc.nextInt();
if(max<arr[i]) {
max=arr[i];
idx=i+1;
}
}
System.out.println(max);
System.out.println(idx);
}
}
02577. 숫자의 개수
세 개의 자연수 A, B, C가 주어질 때 A × B × C를 계산한 결과에 0부터 9까지 각각의 숫자가 몇 번씩 쓰였는지를 구하는 프로그램을 작성하시오.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int []arr = new int[3];
int []num = new int[10];
for(int i=0; i<3; i++) {
arr[i] = sc.nextInt();
}
int result = arr[0] * arr[1] * arr[2];
int temp;
while(result!=0) {
temp = result%10;
num[temp]++;
result/=10;
}
for(int i : num) {
System.out.println(i);
}
}
}
03052. 나머지
두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다. 수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num[] = new int[10];
int arr[] = new int[42];
int temp, cnt=0;
for(int i=0; i<10; i++) {
num[i] = sc.nextInt();
temp = num[i]%42;
arr[temp]++;
}
for(int i:arr) {
if(i!=0) cnt++;
}
System.out.println(cnt);
}
}
01546. 평균
점수 중에 최댓값을 골랐다. 이 값을 M이라고 한다. 그리고 나서 모든 점수를 점수/M*100으로 고쳤다.
예를 들어, 최고점이 70이고, 수학점수가 50이었으면 수학 점수는 50/70*100이 되어 71.43점이 된다. 성적을 위의 방법대로 새로 계산했을 때, 새로운 평균을 구하는 프로그램을 작성하시오.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
float []arr = new float[n];
float max=0, sum=0;
for(int i=0; i<n; i++) {
arr[i] = sc.nextFloat();
if(max<arr[i]) max=arr[i];
}
for(int i=0; i<n; i++) {
arr[i] = arr[i]/max*100;
sum+=arr[i];
}
System.out.printf("%f\n", sum/n);
}
}
08958. OX사이클
"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다. "OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다. OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int []score = new int[n];
String []str = new String[n];
sc.nextLine(); //버퍼지우기
int cnt=0; //연속 횟수 확인용
int temp=0; //획득한 점수
for(int i=0; i<n; i++) {
str[i] = sc.nextLine();
for(int j=0; j<str[i].length(); j++) {
if(str[i].charAt(j)=='O') {
cnt++;
temp+=cnt;
}else {
score[i]+=temp;
cnt=0; temp=0;
}
}
if(temp!=0) {
score[i]+=temp;
cnt=0; temp=0;
}
}
for(int i:score) {
System.out.println(i);
}
}
}
04344. 평균은 넘겠지
첫째 줄에는 테스트 케이스의 개수 C가 주어진다. 둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. (1 ≤ 점수 ≤ 100)
각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
float []res = new float[n]; //평균 넘는 학생 비율
int cnt; //학생 수
int sum=0; //학생 점수의 합
float avg; //학생 점수의 평균
int num=0; //평균을 넘는 학생의 수
for(int i=0; i<n; i++) {
cnt = sc.nextInt();
int []arr = new int[cnt];
for(int j=0; j<cnt; j++) {
arr[j] = sc.nextInt();
sum+=arr[j];
}
avg = sum/(float)cnt;
for(int j=0; j<cnt; j++) {
if(avg<arr[j]) num++;
}
//res에 저장 : 결과가 실수여야하므로 형변환
res[i]=(num/(float)cnt)*100;
//사용한 변수 초기화
sum=0; num=0;
}
for(float i : res) {
System.out.printf("%.3f%%\n",i);
}
}
}
'Computer Science > 백준 알고리즘' 카테고리의 다른 글
[백준.02908-C언어] 상수 (0) | 2021.03.10 |
---|---|
[백준.01157-C언어] 단어의 개수 (1) | 2021.03.09 |
[백준.02675-C언어] 문자열 반복 (0) | 2021.03.07 |
[백준.10809] 알파벳 찾기 / C언어 (0) | 2021.03.07 |
[백준.11654-C언어] 아스키 코드 (0) | 2021.03.06 |