1단계 두 수 비교하기
- 첫째 줄에 A와 B가 주어진다. A와 B는 공백 한 칸으로 구분되어져 있다.
- 첫째 줄에 다음 세 가지 중 하나를 출력한다.
- A가 B보다 큰 경우에는 '>'를 출력한다.
- A가 B보다 작은 경우에는 '<'를 출력한다.
- A와 B가 같은 경우에는 '=='를 출력한다.
import java.util.Scanner;
public class Step_01 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int a;
int b;
a = scan.nextInt();
b = scan.nextInt();
if(a > b) {
System.out.println(">");
}
if(a == b) {
System.out.println("==");
}
if(a < b){
System.out.println("<");
}
}
}
A.
- if문을 이용한 조건문을 작성하는 기본 방법
2단계 시험 성적
- 시험 점수를 입력 받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오.
import java.util.Scanner;
public class Step_02 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int a;
a = scan.nextInt();
if (60 <= a) {
if (70 <= a) {
if (80 <= a) {
if (90 <= a) {
System.out.println("A");
} else {
System.out.println("B");
}
} else {
System.out.println("C");
}
} else {
System.out.println("D");
}
} else {
System.out.println("F");
}
}
}
A.
- 점수 구간 별 등급을 설정하는 공식이다. 조건문을 전부 분할하여 if (60 ≤ a && a<70)으로 여러개 구분하여 작성할 수도 있다.
3단계 윤년
- 연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오.
- 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다.
import java.util.Scanner;
public class Step_03 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int a;
a = scan.nextInt();
if (a%4==0) {
if(a%100==0) {
if(a%400==0) {
System.out.println("1");
}
else {
System.out.println("0");
}
}
else {
System.out.println("1");
}
}
else {
System.out.println("0");
}
}
}
A.
- 우선 4의 배수를 거르고, 그 중 100의 배수를 거른다. 마지막으로 400의 배수를 거르고 if문 내부에 윤년인 1을 출력한다.
- else문에는 4의 배수이면서 100의 배수이고 400의 배수가 아니기 때문에 평년인 0을 출력한다.
- 100의 배수 조건문의 else문에는 4의 배수이면서 100의 배수가 아니기 때문에 윤년인 1을 출력한다.
- 4의 배수의 else 조건문에는 평년인 0을 출력한다.
4단계 사분면 고르기
- 점 (x, y)의 사분면 번호(1, 2, 3, 4 중 하나)를 출력한다.
import java.util.Scanner;
public class Step_04 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int a, b;
a = scan.nextInt();
b = scan.nextInt();
if (a > 0) {
if (b > 0) {
System.out.println("1");
}
else {
System.out.println("4");
}
}
if (a<0) {
if (b > 0) {
System.out.println("2");
}
else {
System.out.println("3");
}
}
}
}
A.
- 조건문을 4등분 하여 결과를 출력한다.
5단계 알람 시계
- 첫째 줄에 두 정수 H와 M이 주어진다. (0 ≤ H ≤ 23, 0 ≤ M ≤ 59) 그리고 이것은 현재 상근이가 설정한 알람 시간 H시 M분을 의미한다.
- 입력 시간은 24시간 표현을 사용한다. 24시간 표현에서 하루의 시작은 0:0(자정)이고, 끝은 23:59(다음날 자정 1분 전)이다. 시간을 나타낼 때, 불필요한 0은 사용하지 않는다.
- 첫째 줄에 상근이가 창영이의 방법을 사용할 때, 설정해야 하는 알람 시간을 출력한다. (입력과 같은 형태로 출력하면 된다.)
import java.util.Scanner;
public class Step_05 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int a, b;
a = scan.nextInt();
b = scan.nextInt();
int c = a*60+b+1440 -45;
if ( c < 1440) {
System.out.print(c/60+" ");
System.out.println(c%60);
}
else {
System.out.print((c-1440)/60+" ");
System.out.println((c-1440)%60);
}
}
}
A.
- 알람을 정한 시간을 분 단위로 변환하여 하루를 의미하는 1440분을 더하고 45분을 빼준다.
- 결과 값이 1440을 넘지 않는다면 날짜 변환이 생기기 때문에 그대로 60을 나눠준다. 60을 나눈 몫은 시간, 나머지는 분이 된다.
- 결과 값이 1440을 넘는다면 날짜 변환이 없기 때문에 다시 1440을 빼고 60을 나눠준다. 60을 나눈 몫은 시간, 나머지는 분이 된다.
6단계 오븐 시계
- 첫째 줄에는 현재 시각이 나온다. 현재 시각은 시 A (0 ≤ A ≤ 23) 와 분 B (0 ≤ B ≤ 59)가 정수로 빈칸을 사이에 두고 순서대로 주어진다. 두 번째 줄에는 요리하는 데 필요한 시간 C (0 ≤ C ≤ 1,000)가 분 단위로 주어진다.
- 첫째 줄에 종료되는 시각의 시와 분을 공백을 사이에 두고 출력한다. (단, 시는 0부터 23까지의 정수, 분은 0부터 59까지의 정수이다. 디지털 시계는 23시 59분에서 1분이 지나면 0시 0분이 된다.)
import java.util.Scanner;
public class Step_06 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int a, b, c, d;
a = scan.nextInt();
b = scan.nextInt();
c = scan.nextInt();
d = a*60+b+c;
if (d<1440) {
System.out.print(d/60 + " ");
System.out.println(d%60);
}
else {
System.out.print((d-1440)/60 + " ");
System.out.println((d-1440)%60);
}
}
}
A.
- 현재 시간을 분 단위로 변환하고 필요한 시간을 더하여 새로운 변수 d를 만든다.
- 요리 시간은 1일을 넘기지 않기 때문에 시간이 하루를 넘기는지만 체크한다.
- d가 1440을 넘지 않는다면 즉시 60으로 나누고 몫이 시간, 나머지가 분이 된다.
- d가 1440을 넘는다면 1440을 다시 빼고 60으로 나누고 몫이 시간, 나머지가 분이 된다.
7단계 주사위 세개
- 첫째 줄에 3개의 눈이 빈칸을 사이에 두고 각각 주어진다.
- 상금은 다음과 같다.
- 같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다.
- 같은 눈이 2개만 나오는 경우에는 1,000원+(같은 눈)×100원의 상금을 받게 된다.
- 모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈)×100원의 상금을 받게 된다.
- 첫째 줄에 게임의 상금을 출력 한다.
import java.util.Scanner;
public class Step_07 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int a, b, c;
a = scan.nextInt();
b = scan.nextInt();
c = scan.nextInt();
if (a == b) {
if (a==c) {
System.out.println(10000+a*1000);
}
else {
System.out.println(1000+a*100);
}
}
else {
if (a ==c ) {
System.out.println(1000+a*100);
}
else {
if (b == c) {
System.out.println(1000+b*100);
}
else {
if (a>b) {
if (a>c) {
System.out.println(a*100);
}
else {
System.out.println(c*100);
}
}
else {
if (b>c) {
System.out.println(b*100);
}
else {
System.out.println(c*100);
}
}
}
}
}
}
}
A.
- a=b일 때 조건을 분리하고, 그 중 a=c일 때 1등 상금을 출력하고, a=c가 아닐 때 2등 상금을 출력한다.
- a=b가 아니고 b=c인 경우는 2등 상금을 출력한다.
- a=b=c인 경우 가장 큰 숫자에 해당하는 상금을 출력한다.
'백준' 카테고리의 다른 글
백준 닷컴 단계 별로 풀어보기 6단계 (1) | 2023.10.04 |
---|---|
백준 닷컴 단계 별로 풀어보기 5단계 (1) | 2023.09.21 |
백준 닷컴 단계 별로 풀어보기 4단계 (1) | 2023.09.19 |
백준 닷컴 단계 별로 풀어보기 3단계 (0) | 2023.09.19 |
백준 닷컴 단계 별로 풀어보기 1단계 (0) | 2023.09.18 |