Algorithm/Baekjoon
[백준] 2480번 : 주사위 세 개 - Java
unknownomad
2022. 2. 17. 09:33
https://www.acmicpc.net/problem/2480
2480번: 주사위 세개
1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다. 같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다. 같은 눈이 2개
www.acmicpc.net
입력 방식
1. Scanner
2. BufferedReader
2.1. 문자열 받는 대표적인 방법
- read(): 한 문자만 읽어오기
- readLine(): 한 행 읽어오기(사용 권장)
- readLine()은 한 행을 전부 읽기에 공백 단위로 입력해준 문자열을 다시 공백 단위로 분리해줘야 함
2.2. 문자열 분리 방법
2.2.1. StringTokenizer 클래스
- split()보다 성능 좋음(단순 규칙으로 문자열 분리하거나 데이터가 더 많아질 때 추천)
2.2.2. split()
2.3. 형변환 주의점
- StringTokenizer 클래스와 split() 모두 문자열을 반환하기에 자료형 타입 확인 후 형변환 유의하기
- double형으로 풀면 나머지가 정수로 나와도 소수점까지 같이 출력되어 오답으로 처리됨
풀이
1. Scanner + if 문
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();
int C = sc.nextInt();
if(A == B && B == C) {
System.out.print(10000 + (A * 1000));
} else if(A == B || A == C) {
System.out.print(1000 + (A * 100));
} else if(B == C) {
System.out.print(1000 + (B * 100));
} else {
System.out.println(Math.max(Math.max(A, B), C) * 100);
}
}
}
2. BufferedReader + if 문
2.1. BufferedReader + StringTokenizer 클래스 + if 문
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());
int A = Integer.parseInt(st.nextToken());
int B = Integer.parseInt(st.nextToken());
int C = Integer.parseInt(st.nextToken());
if(A == B && B == C) {
System.out.println(10000 + A * 1000);
} else if(A == B || A == C) {
System.out.println(1000 + A * 100);
} else if(B == C) {
System.out.println(1000 + B * 100);
} else {
System.out.println(Math.max(Math.max(A, B), C) * 100);
}
}
}
2.2. BufferedReader + split() + if 문
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] str = br.readLine().split(" ");
int A = Integer.parseInt(str[0]);
int B = Integer.parseInt(str[1]);
int C = Integer.parseInt(str[2]);
if(A == B && B == C) {
System.out.println(10000 + A * 1000);
} else if(A == B || A == C) {
System.out.println(1000 + A * 100);
} else if(B == C) {
System.out.println(1000 + B * 100);
} else {
System.out.println(Math.max(Math.max(A, B), C) * 100);
}
}
}
성능
- BufferedReader > Scanner