본문 바로가기

자바

백준 알고리즘 - 1330번 두 수 비교하기 [자바]

조건문 문제로 넘어왔는데 검색으로 풀어야 할 줄 알았는데 

검색없이 풀 수 있었어서 뿌듯했다!

 

<문제 풀이 1>

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		int a = sc.nextInt();
		int b = sc.nextInt();

		if (a > b) {
			System.out.print(">");
		}
		if (a < b) {
			System.out.print("<");
		} else {

			System.out.print("==");
		}

	}

}

처음으로 짠 코드이다.

a와 b를 각각 5,4를 입력했을 때, 첫 번째 if문의 조건이 성립되기에 ">" 값이 출력 될 줄 알았는데

실행해보니 ">=="가 출력이 됐다. 왜 그런지 학교 형 한테 물어보니 a > b의 조건이 성립이 되는 박스에서 결과 값을 출력하고 else로 넘어가 else 박스의 결과를 또 한 번 더 출력한다고 한다. 그래서 출력 값이 ">=="가 나오는 바람에 오답 처리가 됐다.

 

<문제 풀이2>

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		int a = sc.nextInt();
		int b = sc.nextInt();

		if (a > b) {
			System.out.print(">");
		}
		if (a < b) {
			System.out.print("<");
		} 
        if (a == b){

			System.out.print("==");
		}

	}

}

그래서 그냥 if 조건이 맞는 박스만 출력하자는 생각에 else를 없애고 세 조건 다 if문을 이용하니까 정답 처리가 됐다.

 

<문제풀이 3>

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		int a = sc.nextInt();
		int b = sc.nextInt();

		if (a > b) {
			System.out.print(">");
		}
		else if (a < b) {
			System.out.print("<");
		} 
        else {

			System.out.print("==");
		}

	}

}

조금 더 잘 할 순 없을까 하는 생각에 if와  else if, else를 이용해서 작성해보았다.

조건의 개수가 적을 땐 if만 이용해서 코드를 작성을 할 수는 있으나 

조건이 많이 사용됐을 때는 else가 필요할 것이라 생각들어서 else를 사용했다.