* 완벽한 정답은 없다
* 여러 정답 블로그 보면서 리팩토링하기에 좋겠다~ 식으로 다른 사람의 코드도 읽기
* java class이름 : Main
* 백준 링크 : https://www.acmicpc.net/step/4 https://www.acmicpc.net/step/3
1330
두 정수 A와 B가 주어졌을 때, A와 B를 비교하는 프로그램을 작성하시오.
첫째 줄에 다음 세 가지 중 하나를 출력한다.
- A가 B보다 큰 경우에는 '>'를 출력한다.
- A가 B보다 작은 경우에는 '<'를 출력한다.
- A와 B가 같은 경우에는 '=='를 출력한다.
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int a = scan.nextInt(); int b = scan.nextInt(); if (a>b) { System.out.println('>'); }else if (a<b) { System.out.println('<'); }else if (a==b) { System.out.println("=="); } } }
9498
시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int a = scan.nextInt();
if (a < 101 && a > 89) {
System.out.println('A');
} else if (a < 90 && a > 79) {
System.out.println('B');
} else if (a < 80 && a > 69) {
System.out.println('C');
} else if (a < 70 && a > 59) {
System.out.println('D');
} else {
System.out.println('F');
}
}
}
2753
연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오.
윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다.
예를 들어, 2012년은 4의 배수이면서 100의 배수가 아니라서 윤년이다. 1900년은 100의 배수이고 400의 배수는 아니기 때문에 윤년이 아니다. 하지만, 2000년은 400의 배수이기 때문에 윤년이다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int a = scan.nextInt();
if (a % 4 == 0 && a % 100 != 0 || a % 400 == 0) {
System.out.println(1);
} else {
System.out.println(0);
}
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int year = scan.nextInt();
if (year % 4 == 0) {
if (year % 100 != 0) {
System.out.println('1');
} else if (year % 400 == 0) {
System.out.println('1');
} else System.out.println('0');
} else System.out.println('0');
}
}
14681
흔한 수학 문제 중 하나는 주어진 점이 어느 사분면에 속하는지 알아내는 것이다. 사분면은 아래 그림처럼 1부터 4까지 번호를 갖는다. "Quadrant n"은 "제n사분면"이라는 뜻이다.
예를 들어, 좌표가 (12, 5)인 점 A는 x좌표와 y좌표가 모두 양수이므로 제1사분면에 속한다. 점 B는 x좌표가 음수이고 y좌표가 양수이므로 제2사분면에 속한다.
점의 좌표를 입력받아 그 점이 어느 사분면에 속하는지 알아내는 프로그램을 작성하시오. 단, x좌표와 y좌표는 모두 양수나 음수라고 가정한다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int x = scan.nextInt();
int y = scan.nextInt();
if (x > 0 && y > 0) {System.out.println('1');}
if (x < 0 && y > 0) {System.out.println('2');}
if (x < 0 && y < 0) {System.out.println('3');}
if (x > 0 && y < 0) {System.out.println('4');}
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int x = scan.nextInt();
int y = scan.nextInt();
if (x > 0 && y > 0) {System.out.println('1');}
else if (x < 0 && y > 0) {System.out.println('2');}
else if (x < 0 && y < 0) {System.out.println('3');}
else System.out.println('4');
}
}
2884
알람 시계 "45분 일찍 알람 설정하기"
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int H = scan.nextInt();
int M = scan.nextInt();
if ((M - 45) < 0) { // M-45가 음수인 경우
H--; // H를 1감소
if (H < 0) { // M-45가 음수고 H=0인 경우
H = 23;
}
M = 60 + (M - 45);
} else { //M-45가 0또는 양수인 경우
M -= 45; //M = M - 45
}
System.out.println(H + " " + M);
}
}
2739
N을 입력받은 뒤, 구구단 N단을 출력하는 프로그램을 작성하시오. 출력 형식에 맞춰서 출력하면 된다.
출력형식과 같게 N*1부터 N*9까지 출력한다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int N = scan.nextInt();
for (int i = 1; i <= 9; i++) {
System.out.println(N + " * " + i + " = " + (N * i));
}
}
}
10950
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
첫째 줄에 테스트 케이스의 개수 T가 주어진다.
각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)
각 테스트 케이스마다 A+B를 출력한다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int T = scan.nextInt();
int arr[] = new int[T];
for (int i = 0; i < T; i++) {
int a = scan.nextInt();
int b = scan.nextInt();
arr[i] = a + b;
}
for (int i = 0; i < T; i++) {
System.out.println(arr[i]);
}
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int T = scan.nextInt();
for (int i = 0; i < T; i++) {
int a = scan.nextInt();
int b = scan.nextInt();
System.out.println(a + b);
}
}
}
8393
n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오.
1부터 n까지 합을 출력한다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int sum = 0;
for (int i = 1; i <= n; i++) {
sum += i;
}
System.out.println(sum);
}
}
15552 PASS
첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다.
각 테스트케이스마다 A+B를 한 줄에 하나씩 순서대로 출력한다.
bufferedReader가 Scanner에 비해 입력받는 속도가 6배정도 빠르다고 한다.
2741
자연수 N이 주어졌을 때, 1부터 N까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오.
첫째 줄부터 N번째 줄 까지 차례대로 출력한다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
for (int i = 1; i <= n; i++) {
System.out.println(i);
}
}
}
2742
자연수 N이 주어졌을 때, N부터 1까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오.
첫째 줄부터 N번째 줄 까지 차례대로 출력한다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
for (int i = n; i >= 1; i--) {
System.out.println(i);
}
}
}
11021
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
각 테스트 케이스마다 "Case #x: "를 출력한 다음, A+B를 출력한다. 테스트 케이스 번호는 1부터 시작한다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int T = scan.nextInt();
int arr[] = new int[T];
for (int i = 0; i < T; i++) {
int a = scan.nextInt();
int b = scan.nextInt();
arr[i] = a + b;
}
for (int i = 0; i < T; i++) {
System.out.println("Case #"+(i+1)+": "+arr[i]);
}
}
}
11022
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
각 테스트 케이스마다 "Case #x: A + B = C" 형식으로 출력한다. x는 테스트 케이스 번호이고 1부터 시작하며, C는 A+B이다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int T = scan.nextInt();
int arr[] = new int[T];
for (int i = 0; i < T; i++) {
int a = scan.nextInt();
int b = scan.nextInt();
arr[i] = a + b;
System.out.println("Case #"+(i+1)+": "+a+" + "+b+" = "+arr[i]);
}
}
}
2438
첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제
첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int T = scan.nextInt();
for (int i = 0; i < T; i++) {
for (int j = 0; j <=i; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
2439 <= 07-13(화) *웤샵02 dowhile 에 있음
첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제
하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.
첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int T = scan.nextInt();
for (int i = 1; i <= T; i++) {
for (int j =1; j <=T-i; j++) {
System.out.print(" ");
}
for (int j = 1; j <=i; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
10871
정수 N개로 이루어진 수열 A와 정수 X가 주어진다. 이때, A에서 X보다 작은 수를 모두 출력하는 프로그램을 작성하시오.
둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다.
X보다 작은 수를 입력받은 순서대로 공백으로 구분해 출력한다. X보다 작은 수는 적어도 하나 존재한다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int N = scan.nextInt();
int X = scan.nextInt();
int A[] = new int[N];
for (int i = 0; i < N; i++) {
A[i] = scan.nextInt();
}
for (int i = 0; i < N; i++) {
if (A[i] < X) {
System.out.print(A[i] + " ");
}
}
}
}
'백준 공부 > Java' 카테고리의 다른 글
단계별로 풀어보기 - 함수 java (0) | 2021.11.29 |
---|---|
단계별로 풀어보기 - 1차원배열 java (0) | 2021.11.22 |
단계별로 풀어보기 - while문 java (0) | 2021.11.22 |
단계별로 풀어보기 - 입출력과 사칙연산 java (0) | 2021.11.22 |