728x90
https://www.acmicpc.net/problem/1330
백준 자바 1330번 문제. 두 수를 비교한 후 원하는 부등호를 출력하는 문제이다. 어떠한 방법으로 풀지 고민해봤는데,
일반적인 Scanner 방법으로 풀 수 있다. 하지만 Scanner는 알고리즘상에서 그다지 빠른 속도가 아니기때문에 BufferedReader을 이용해보기로 했다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
StringTokenizer st = new StringTokenizer(str, " ");
int A = Integer.parseInt((st.nextToken()));
int B = Integer.parseInt(st.nextToken());
System.out.println((A>B) ? ">" : ((A<B) ? "<" : "=="));
}
}
BufferedReader를 통해 값을 입력 할 수 있게 셋팅. 그런데 문제에서 필요한것은 입력하는 A와 B가 공백 한칸으로 구분되어 있다는것. 공백을 나뉘주기 위해서 방법을 찾다보니 StringTokenizer와 split를 이용하는 방법이 있었다.
split야 워낙 익숙하기 StringTokenizer를 이용하여 코드를 구성해보았다.
String str = br.readLinst();으로 입력할 값을 선언하고, StringTokenizer를 선언하여 공백으로 나눌 수 있게, " " 처리를 하였다. 그리고 코드를 한줄이라도 더 줄이기 위해 삼항연사자를 적용.
워낙 If가 익숙하다보니 나도 If를 쓰려고 했지만, 알고리즘의 효율과 다양한 방법을 숙달하기 위해서 평소 사용해보지 않은것들을 좀 사용해봐야겠다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class BJ1330 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
String[] str = br.readLine().split(" ");
int A = Integer.parseInt(str[0]);
int B = Integer.parseInt(str[1]);
System.out.println((A>B) ? ">" : ((A<B) ? "<" : "=="));
}
}
split를 이용한 방법도 한 번 작성해보았음. 익숙해질때까지 부단한 노력이 좀 필요할 것 같다.
728x90
'Algorithm' 카테고리의 다른 글
[Java] 백준 1550번 16진수 (0) | 2021.10.27 |
---|---|
[Java] 백준 1271번 엄청난 부자2 (0) | 2021.10.25 |
[백준] 1000번: A+B (0) | 2021.10.02 |
[Java] 백준 10172번: 개 (0) | 2021.10.01 |
[Java] 백준 10171번: 고양이 (0) | 2021.09.29 |