개발도생's Blog
[백준][Java] 16204_카드 뽑기 본문
[백준] 16204_카드 뽑기 문제
16204번: 카드 뽑기
첫째 줄에 N, M, K가 주어진다. (1 ≤ N ≤ 1,000,000, 0 ≤ M, K ≤ N)
www.acmicpc.net
카드의 앞뒤가 같은 모양으로 겹칠 수 있는 경우의 수를 구해주는 문제다.
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 N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
int K = Integer.parseInt(st.nextToken());
int O = Math.min(M, K) + Math.min((N - M), (N - K));
System.out.println(O);
}
}
공백이 있는 값을 입력하기 위해 BufferedReader객체를 사용했고,
[Java][Class] Bufferedreader
코딩 테스트 문제들을 풀다가 우연히 알게 된 Bufferedreader 객에 대해서 공부해봤다. Bufferedreader Class는, 이름과 같이 버퍼를 사용하는 클래스다. 일반적으로 알고 있던 Scanner Class는 사용자가 값을
nan-o-nuel-do.tistory.com
공백을 구분해주기 위해서 StringTokenizer객체를 사용했다.
[Java][Class] StringTokenizer
평소 유용하게 사용하고 있는 객체 StringTokenizer를 공부해봤다. StringTokenizer Class는, 단순하게 표현한다면 문자들을 토큰화 시켜준다고 이해하면 편할 것 같다. 토큰으로 분리된 문자들을 StringToken
nan-o-nuel-do.tistory.com
구분된 토큰 값들은 Integer.parseInt() 메서드로 정수 타입으로 형 변환 시켜 변수에 저장했다.
저장된 값들은 Math Class에서 제공하는 최솟값을 구분해 리턴해주는 min() 메서드를 사용해 경우의 수를 풀어봤다.
앞, 뒷면 모양이 모두 동그라미일 경우의 수는 두 수 중 더 작은 수가 될 것이다.
마찬가지로 앞뒤가 모두 엑스 모양일 경우도 구해준 후 최솟값들을 더해준 후 출력하면 된다.
위와 같은 코드로 제출했을 때,
맞았습니다!!
개린이가 푼 코드를 보시고 답답해서 더욱 효율적인 방법으로 풀 수 있도록 지식을 공유해주실 분!
코딩을 공부하는 개린이에게 더 잘 되라고 공부에 도움 되는 이야기를 공유해주실 개발 고수님들은 과감하고 거침없이 댓글 남겨주시면 큰 도움이 될 것 같습니다.
부족하지만 끝까지 읽어주셔서 감사합니다!
'BaekJoon' 카테고리의 다른 글
[백준][Java] 20353_Atrium (0) | 2023.01.30 |
---|---|
[백준][Java] 25494_단순한 문제 (Small) (2) | 2023.01.28 |
[백준][Java] 16199_나이 계산하기 (0) | 2022.12.22 |
[백준][Java] 15963_CASIO (1) | 2022.12.20 |
[백준][Java] 15873_공백 없는 A+B (1) | 2022.12.19 |