코딩테스트 & 알고리즘 및 기타/백준_알고리즘 - 단계별 풀이

[Java, 자바] 백준 알고리즘 - 단계별 풀기 (2단계)

정데브 2021. 5. 8. 15:00

2단계 IF를 이용한 출력 문제 

 

 

 

1330번 

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

import java.util.Scanner;

public class NO_1 {

	public static void main(String[] args) {
		Scanner in=new Scanner(System.in);
		int A=in.nextInt();
		int B=in.nextInt();
		
		
		if(A>B) //if를 통해 A가B보다 크냐?
			System.out.println(">"); 
		
		if(A<B) //if를 통해 B가A보다 크냐?
			System.out.println("<");
		
		if(A==B) //if를 통해 A가B랑 같냐?
			System.out.println("==");		
	}
}

 

 

9498번 

  • 시험 점수를 입력받아 90 ~ 100점은 A
  • 80 ~ 89점은 B
  • 70 ~ 79점은 C
  • 60 ~ 69점은 D
  • 나머지 점수는 F를 출력하는 프로그램을 작성하시오.
package step2;

import java.util.Scanner;

public class NO_2 {

	public static void main(String[] args) {
		Scanner in=new Scanner(System.in);
		int data=in.nextInt();
		
		if(90<=data && data<=100)  //if문 시작
			System.out.println("A");
		else if(80<=data && data<=89) //위에 if가 아니면 실행
			System.out.println("B");
		else if(70<=data && data<=79)	//또 위에 if가 아니면
			System.out.println("C");
		else if(60<=data && data<=69)	//또 위에 if가 아니면
			System.out.println("D");
		else 
			System.out.println("F");  //위에있는 모든게 아니면 실행
		
	}
}

 

 

2753번

  • 연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오.
  • 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다.
  • 예를 들어, 2012년은 4의 배수이면서 100의 배수가 아니라서 윤년이다. 1900년은 100의 배수이고 400의 배수는 아니기 때문에 윤년이 아니다. 하지만, 2000년은 400의 배수이기 때문에 윤년이다.
package step2;

import java.util.Scanner;

public class NO_3 {

	public static void main(String[] args) {
		Scanner in=new Scanner(System.in);
		int data=in.nextInt();
		
        //논리연산자 사용 &&는 둘다 참 || 둘중 하나 참
        // 4로 나눠지면서 100으로 나눠지지 않는 둘다 포함하는 && (and)연산자 사용
        // 위 조건 또는 400으로 나눠지는 것 || (or)연산자 사용
		if(data%4==0 && data%100 !=0 || data%400==0)
			System.out.println("1");
		else
			System.out.println("0");
		
	}

}

 

 

14681번

  • 흔한 수학 문제 중 하나는 주어진 점이 어느 사분면에 속하는지 알아내는 것이다. 사분면은 아래 그림처럼 1부터 4까지 번호를 갖는다. "Quadrant n"은 "제n사분면"이라는 뜻이다.
  • 점의 좌표를 입력받아 그 점이 어느 사분면에 속하는지 알아내는 프로그램을 작성하시오. 단, x좌표와 y좌표는 모두 양수나 음수라고 가정한다.

 

package step2;

import java.util.Scanner;

public class NO_4 {

	public static void main(String[] args) {
		Scanner in=new Scanner(System.in);
		int x=in.nextInt();
		int y=in.nextInt();
		
		if (x>0) {		//x가 0보다 클 경우   1, 4 분면에 해당
			if(y>0) {	//x가 0보다 크고, y 가 0 보다 클 경우  1분면에 해당
				System.out.print("1");
			}else {    //x가 0보다는 크고, y 가 0 보다는 작을 경우 4분면에 해당
				System.out.print("4");
			}
		}else {   //x가 0보다 작을 경우 2, 3 분면에 해당
			if(y>0) {  //x가 0보다 작으며, y가 0보다 클경우 2분면에 해당
				System.out.print("2");
			}else {  //x가 0보다 작으며, y도 0보다 작을 경우 3분면에 해당
				System.out.print("3"); //
			}
		}						
	}

}

위 코드는 더욱 간단하게 &&로 풀 수 있는 문제입니다! 저는 기준하나씩 잡고 if와 else를 더 많이 사용하기 위해서 다소 복잡하게 코딩하였습니다!

 

 

 

2884번

  • 45분 일찍 알람 설정하기
  • 첫째 줄에 두 정수 H와 M이 주어진다. (0 ≤ H ≤ 23, 0 ≤ M ≤ 59) 그리고 이것은 현재 상근이가 설정한 놓은 알람 시간 H시 M분을 의미한다.
  • 입력 시간은 24시간 표현을 사용한다. 24시간 표현에서 하루의 시작은 0:0(자정)이고, 끝은 23:59(다음날 자정 1분 전)이다. 시간을 나타낼 때, 불필요한 0은 사용하지 않는다.
package step2;

import java.util.Scanner;

public class NO_5 {

	public static void main(String[] args) {
		Scanner in=new Scanner(System.in);
		System.out.println("시간 분 입력: ");
		int H=in.nextInt();    //H시
		int M=in.nextInt();	//M분

		if(0<=H && H<=23) {
			M=M-45;
			if(0<=M) {
				System.out.println(H +" "+ M);		//뺏을때 분이나 시간이 바뀌지 않으면 그대로 출력
			}else if(0>M) {  //만약 45를 뺸후 분이 마이너스라면
				M=60+M;   //분을 다시 설정
				H=H-1;		//분이 마이너스 일때 시간을 하나 빼줌
				if(H<0) {  // 만약 시간이 0이였다면 시간또한 마이너스
					H=24+H;    //시간 다시 설정
				}
				System.out.println(H +" "+ M);	
			}
		}
		
		
	}
								
}

 

 

똑같은 문제를 주어지더라도 사람마다 자신의 풀이방식이 다릅니다!

문제를 이해하고 자신의 창의력을 발휘하여 먼저 문제를 풀어보는 것을 추천합니다!!

 

 

 

정 모르겠는 문제는 바로 구글링으로~~ 😆

2단계 까지는 100% 제 손가락으로 푼 문제들이랍니다 ㅎㅎㅎ

다음번에는 3단계로 찾아오겠습니다~ 감사합니다