5.A - 두명의 하이스코어
Time Limit: 1s Memory Limit: 128MB
DESCRIPTION
N명의 학생의 이름과 성적을 입력으로 받아, 1등과 2등을 한 학생의 이름과 성적을 출력하는 프로그램을 작성하세요.
Write a program that prompts the user to enter the number of students and each student’s name and score, and finally displays the student with the highest score and the student with the second-highest score.
INPUT
* Line 1 : 학생수 N (2~10)
* Line 2 ~ N+1 : 이름 점수
- 이름은 길이가 100을 넘지 않고 공백이 포함되지 않은 문자열임
- 점수는 0~100 까지의 정수임 (동일한 점수는 존재하지 않음)
OUTPUT
* Line 1 : 1등을한 학생의 이름과 점수
* Line 2 : 2등을한 학생의 이름과 점수
SAMPLE INPUT
5
Anna 80
June 75
Brave 35
Geek 95
April 99
SAMPLE OUTPUT
April 99
Geek 95
import java.util.Scanner;
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt(), i, grade[] = new int[n], sort_grade[] = new int[n];
String name[] = new String[n];
for(i = 0; i < n; i++){
name[i] = input.next();
grade[i] = input.nextInt();
sort_grade[i] = grade[i];
}
Arrays.sort(sort_grade);
for(i = 0; i < n; i++){
if(grade[i] == sort_grade[n - 1])
System.out.println(name[i] + " " + grade[i]);
}
for(i = 0; i < n; i++){
if(grade[i] == sort_grade[n - 2])
System.out.println(name[i] + " " + grade[i]);
}
}
}
5.B - GCD
Time Limit: 1s Memory Limit: 128MB
DESCRIPTION
두 정수 n1과 n2를 입력받아 최대공약수(greatest common divisor)를 구하는 프로그램을 작성하세요.
Write a program that find the greatest common divisor of two integers n1 and n2
INPUT
* Line 1 : 테스트케이스 T (1~1,000)
* Line 2 ~ T+1 : n1 n2
- n1과 n2는 1~1,000 범위의 정수
OUTPUT
* Line 1 ~ T : GCD
SAMPLE INPUT
4
2 3
2 4
67 203
638 932
SAMPLE OUTPUT
1
2
1
2
import java.util.Scanner;
public class Main {
private static int cal_GCD(int a, int b){
if(b == 0)
return a;
return cal_GCD(b, a%b);
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt(), i, data[][] = new int[n][2], gcd[] = new int[n];
for(i = 0; i < n; i++){
data[i][0] = input.nextInt();
data[i][1] = input.nextInt();
gcd[i] = cal_GCD(data[i][0], data[i][1]);
}
for(i = 0; i < n; i++)
System.out.println(gcd[i]);
}
}
5.C - 소인수분해
Time Limit: 1s Memory Limit: 128MB
DESCRIPTION
정수 I를 입력으로 받아 I의 모든 소인수를 오름차순으로 출력하는 프로그램을 작성하세요. 예를 들어, 120의 소인수분해 결과는 2, 2, 2, 3, 5입니다.
Write a program that reads an integer I and displays all its smallest factors in increasing order. For example, if the input integer is 120, the output should be as follows: 2, 2, 2, 3, 5.
INPUT
* Line 1 : 테스트케이스 T (1~1,000)
* Line 2 ~ T+1 : 정수 (2~1,000)
OUTPUT
* Line 1 ~ T : 소인수(factor)를 공백으로 구분해서 오름차순으로 출력
SAMPLE INPUT
3
24
76
119
SAMPLE OUTPUT
2 2 2 3
2 2 19
7 17
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt(), i, data[] = new int[n], factor;
for (i = 0; i < n; i++)
data[i] = input.nextInt();
for (i = 0; i < n; i++) {
factor = 2;
while (data[i] > 1) {
while (data[i] % factor == 0) {
data[i] /= factor;
System.out.printf("%d%s",factor, data[i] == 1 ? "\n" : " ");
}
factor++;
}
}
}
}
Presentation Error
import java.util.Scanner;
public class Main {
private static void cal_factors(int n) {
int factor = 2;
while (n > 1) {
while (n % factor == 0) {
System.out.print(factor + " ");
n /= factor;
}
factor++;
}
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt(), i, data[] = new int[n];
for (i = 0; i < n; i++)
data[i] = input.nextInt();
for (i = 0; i < n; i++) {
cal_factors(data[i]);
System.out.println();
}
}
}
5.D - 기본 피라미드
Time Limit: 1s Memory Limit: 128MB
DESCRIPTION
피라미드의 크기 N을 입력으로 받아 출력하는 프로그램을 작성하세요.
Write a program that prompts the user to enter an integer N from 1 to 15 and displays a pyramid.
INPUT
* Line 1 : 피라미드의 크기 N (1~15)
OUTPUT
N크기의 피라미드
SAMPLE INPUT
5
SAMPLE OUTPUT
*
***
*****
*******
*********
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt(), i, j;
for(i = 0; i < n ; i++){
for(j = n - 1; j > i; j--)
System.out.print(" ");
for(j = 0; j <= i * 2; j++)
System.out.print("*");
System.out.println();
}
}
}
5.E - < 피라미드
Time Limit: 1s Memory Limit: 128MB
DESCRIPTION
피라미드의 크기 N을 입력으로 받아 출력하는 프로그램을 작성하세요.
Write a program that prompts the user to enter an integer from 1 to 15 and displays a pyramid.
INPUT
* Line 1 : 피라미드의 크기 N (1~15)
OUTPUT
N크기의 피라미드
SAMPLE INPUT
5
SAMPLE OUTPUT
*
**
***
****
*****
****
***
**
*
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt(), i, j;
for(i = 0; i < n ; i++){
for(j = 0; j < n - i - 1; j++)
System.out.print(" ");
for(j = 0; j <= i; j++)
System.out.print("*");
System.out.println();
}
for(i = 1; i < n ; i++){
for(j = 0; j < i; j++)
System.out.print(" ");
for(j = 0; j < n - i; j++)
System.out.print("*");
System.out.println();
}
}
}
5.F - 다이아몬드
Time Limit: 1s Memory Limit: 128MB
DESCRIPTION
다이아몬드의 크기 N을 입력으로 받아 출력하는 프로그램을 작성하세요.
Write a program that prompts the user to enter an integer N from 1 to 15 and displays a diamond.
INPUT
* Line 1 : 다이아몬드의 크기 N (1~15)
OUTPUT
N크기의 다이아몬드
SAMPLE INPUT
5
SAMPLE OUTPUT
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt(), i, j;
for(i = 0; i < n ; i++){
for(j = 0; j < n - i - 1; j++)
System.out.print(" ");
for(j = 0; j <= i * 2; j++)
System.out.print("*");
System.out.println();
}
for(i = 1; i < n ; i++){
for(j = 0; j < i; j++)
System.out.print(" ");
for(j = 0; j < (n - i) * 2 - 1; j++)
System.out.print("*");
System.out.println();
}
}
}
5.G - 숫자 피라미드
Time Limit: 1s Memory Limit: 128MB
DESCRIPTION
피라미드의 크기 N을 입력받아, 숫자로된 피라미드를 출력하는 프로그램을 작성하세요. 만약 N=8일 경우 다음과 같이 출력되어야 합니다.
Write a program that prompts the user to enter an integer N from 1 to 10 and displays a pyramid. If N=8, pyramid is displayed as shown in following:
INPUT
* Line 1 : 피라미드의 크기 N (1~10)
OUTPUT
N크기의 피라미드(각 숫자는 4칸의 공간을 할당 받습니다. 한자리 수일 경우 공백*3숫자(' 2') 이고 세자리 수일 경우 공백숫자(' 128') 입니다. 아무 숫자도 들어가지 않을 떄는 공백 4칸입니다.(' '))
SAMPLE INPUT
5
SAMPLE OUTPUT
import java.util.Scanner;
import java.lang.Math;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt(), i, j;
for(i = 0; i < n ; i++){
for(j = 0; j < n - i - 1; j++)
System.out.print(" ");
for(j = 0; j <= i * 2; j++)
System.out.printf("%4d", j <= i ? (int)Math.pow(2, j) : (int)Math.pow(2, 2 * i - j));
System.out.println();
}
}
}
'학부공부 > Java_Basic' 카테고리의 다른 글
Chapter 6. Methods[Java Basic] (0) | 2021.11.05 |
---|---|
Chapter 5. Loops(2)[Java Basic] (0) | 2021.11.05 |
Chapter 4. Mathematical Functions, Characters, and Strings[Java Basic] (0) | 2021.11.05 |
Chapter 3. Selections[Java Basic] (0) | 2021.11.05 |
Chapter 2. Elementary Programming[Java Basic] (0) | 2021.11.05 |
댓글