-
[백준/BOJ] 2420번 : 사파리월드 (JAVA / 자바)백준 2022. 1. 23. 16:54
안녕하세요~ 코딩하는 코알못 코메인입니다.
https://www.acmicpc.net/problem/2420
2420번: 사파리월드
첫째 줄에 두 도메인의 유명도 N과 M이 주어진다. (-2,000,000,000 ≤ N, M ≤ 2,000,000,000)
www.acmicpc.net
- 문제 -
난이도 브론즈 4 문제이다.
자바에서 입력방식은 scanner와 bufferedreader가 있다.
자바를 초반에 접하면 처음에 배우는 입력은 scanner이다. scanner가 bufferedreader보다 편하지만 속도가 느리다.
bufferedreader는 무조건 문자열로 받아오기때문에 정수형이나 실수형 변수에 저장하기 위해서는 입력과 형변환을 해줘야합니다.
더 자세한 내용은 아래 글 참고 하면 좋습니다.
(JAVA / 자바) Scanner 와 Bufferedreader
안녕하세요~ 코딩하는 코알못 코메인입니다. 이번엔 백준 문제 풀면서 계속 언급될 scanner와 bufferedreader에 대한 간단한 정리를 해볼거다. 자바에서 입력은 scanner와 bufferedreader가 있다. 우선 각자
comain.tistory.com
풀이 방법
주의할 점부터 보면 A와 B의 범위다. 연산 결과 int보다 훨씬 넘어서게 된다. 그러니 정수 형을 long으로 한다.
이번 문제는 음수를 양수로 바꾸는 것이다. 단순히 생각해 -1을 곱해버리면 양수가 음수가 되어버린다.
물론 -1 곱하는 걸로 방법은 있다. if로 조건문을 걸고 결과가 양수일 경우 그대로 출력 음수일 경우 -1을 곱하고 출력하면 된다. 하지만 우리한텐 math라는 좋은 클래스가 있는데 굳이 그렇게 나열할 필요가 없다.
그러니 여기선 math.abs()를 이용해보겠다. 하지만 만약 문제가 음수 양수 반전이면 이걸 쓰지 말고 -1을 곱해야 할 것이다.
-풀이-
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)); StringTokenizer st = new StringTokenizer(br.readLine()); Long N = Long.parseLong(st.nextToken()); Long M = Long.parseLong(st.nextToken()); System.out.println(Math.abs(N - M)); } }
-결과-
아직 코딩 공부가 부족한 필자라 설명과 풀이 방법이 많이 미흡할 수 있다. 코딩 고수들은 보시고 문제점이 있다면 댓글로 말해주시면 감사한 마음으로 참고 수정 하겠다.
'백준' 카테고리의 다른 글
[백준/BOJ] 2525번 : 오븐 시계 (JAVA / 자바) (0) 2022.01.23 [백준/BOJ] 2480번 : 주사위 세개 (JAVA / 자바) (0) 2022.01.23 [백준/BOJ] 1712번 : 손익분기점 (JAVA / 자바) (0) 2022.01.23 [백준/BOJ] 1330번 : 두 수 비교하기 (JAVA / 자바) (0) 2022.01.23 [백준/BOJ] 1297번 : TV 크기 (JAVA / 자바) (0) 2022.01.23