본문 바로가기
백준

[JAVA] 백준 단계별로 문제풀기 - 2단계 if문

by Seong-Jun 2022. 2. 11.
728x90
반응형
SMALL

2 - 1. 두 수 비교하기

두 정수 A와 B가 주어졌을 때, A와 B를 비교하는 프로그램을 작성하시오.

  • A가 B보다 큰 경우에는 '>'를 출력한다.
  • A가 B보다 작은 경우에는 '<'를 출력한다.
  • A와 B가 같은 경우에는 '=='를 출력한다.
import java.util.Scanner;

public class Main {
    public static void main(String args[]) {
        int x;
        int y;
        
        Scanner sc = new Scanner(System.in);
        
        x = sc.nextInt();
        y = sc.nextInt();
        
        if(x > y) {
            System.out.println(">");
        }
        if(x < y) {
            System.out.println("<");
        }
        if(x == y) {
            System.out.println("==");
        }
    }
}

 

2 - 2. 시험 성적

시험 점수를 입력받아 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[]) {
        int score;
        
        Scanner sc = new Scanner(System.in);
        
        score = sc.nextInt();
        
        if(score >= 90 && score <= 100) {
            System.out.println("A");
        }
        else if(score >= 80 && score < 90) {
            System.out.println("B");
        }
        else if(score >= 70 && score < 80) {
            System.out.println("C");
        }
        else if(score >= 60 && score < 70) {
            System.out.println("D");
        }
        else {
            System.out.println("F");
        }
    }
}

 

2 - 3. 윤년

연도가 주어졌을 때, 윤년이면 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[]) {
        int year;
        
        Scanner sc = new Scanner(System.in);
        
        year = sc.nextInt();
        
        if(year >= 1 && year <= 4000) {
            if(year % 4 == 0) {
                if(year % 100 != 0) {
                	System.out.println(1);
                }
                else if(year % 100 == 0) {
                	if(year % 400 == 0) {
                		System.out.println(1);
                	}
                	else {
                		System.out.println(0);
                	}
                }
                else {
                	System.out.println(0);
                }
            }
            else {
                System.out.println(0);
            }
        }
        else {
            System.out.println(0);
        }
    }
}

 

2 - 4. 사분면 고르기

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		int x, y;
		
		Scanner sc = new Scanner(System.in);
		
		x = sc.nextInt();
		y = sc.nextInt();
		
		if(x >= -1000 && x <= 1000 && y >= -1000 && y <= 1000 && x != 0 && y != 0) {
			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);
			}
		}
	}
}

 

2 - 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 Main {
	public static void main(String[] args) {
		int h, m;
		
		Scanner sc = new Scanner(System.in);
		
		h = sc.nextInt();
		m = sc.nextInt();
		
		if(h >= 0 && h <= 23 && m >= 0 && m <= 59) {
			m = m - 45;
			if(m < 0) {
				h = h - 1;
				if(h < 0) {
					h = 24 + h;
				}
				m = 60 + m;
			}
			System.out.println(h + " " + m);
		}
	}
}

 

2 - 6. 오븐 시계

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;

public class Main {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
		StringTokenizer st = new StringTokenizer(br.readLine());
		
		int h = Integer.parseInt(st.nextToken());
		int m = Integer.parseInt(st.nextToken());
		
		if(h >= 0 && h <= 23 && m >= 0 && m <= 59) {
			st = new StringTokenizer(br.readLine());
			int a = Integer.parseInt(st.nextToken());
			m = m + a;
			if(m > 59) {
				h = h + m/60;
				if(h > 23) {
					h = h - 24;
				}
				m = m % 60;
			}
			bw.write(h + " " + m + "\n");
		}
		
		bw.close();
	}

}

 

2 - 7. 주사위 세개

  1. 같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다. 
  2. 같은 눈이 2개만 나오는 경우에는 1,000원+(같은 눈)×100원의 상금을 받게 된다. 
  3. 모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈)×100원의 상금을 받게 된다. 
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;

public class Main {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
		StringTokenizer st = new StringTokenizer(br.readLine());
		
		int dice1 = Integer.parseInt(st.nextToken());
		int dice2 = Integer.parseInt(st.nextToken());
		int dice3 = Integer.parseInt(st.nextToken());
		
		int n; // 가장 큰 눈
		int money;
		
		if((dice1+dice2+dice3) <= 18) {
			if(dice1 == dice2 && dice2 == dice3) {
				money = 10000 + dice1 * 1000;
			}
			else if((dice1 == dice2 && dice2 != dice3) || (dice1 == dice3 && dice1 != dice2)) {
				money = 1000 + dice1 * 100;
			}
			else if((dice1 != dice2 && dice2 == dice3)) {
				money = 1000 + dice2 * 100;
			}
			else {
				if(dice1 > dice2) {
					if(dice1 > dice3) {
						n = dice1;
					}
					else {
						n = dice3;
					}
				}
				else {
					if(dice2 > dice3) {
						n = dice2;
					}
					else {
						n = dice3;
					}
				}
				money = n * 100;
			}
			
			bw.write(money + "\n");
			bw.close();
		}
	}
}

 

728x90
반응형
LIST

댓글