본문 바로가기
카테고리 없음

[백준] 2490 윷놀이 - Implementation / Java

by graycode 2022. 6. 4.

 문제 링크

 

2490번: 윷놀이

우리나라 고유의 윷놀이는 네 개의 윷짝을 던져서 배(0)와 등(1)이 나오는 숫자를 세어 도, 개, 걸, 윷, 모를 결정한다. 네 개 윷짝을 던져서 나온 각 윷짝의 배 혹은 등 정보가 주어질 때 도(배 한

www.acmicpc.net

 

 풀이 과정

도, 개, 걸, 윷, 모 각각의 조합이 대응되는 수는 3, 2, 1, 0, 4 로

입력받은  배(0), 등(1) 총 네 개의 윷짝의 정보를 cnt 변수에 더해 조합이 결정된다.

 

이를 던진 횟수, 3번에 걸쳐 각 라인에 출력해 정답이 구해진다.

 

 풀이 코드

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;

public class Main {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		StringTokenizer st;

		for (int i = 0; i < 3; i++) {
			int cnt = 0;
			st = new StringTokenizer(br.readLine());
			for (int j = 0; j < 4; j++)
				cnt += Integer.parseInt(st.nextToken());

			if (cnt == 3)
				bw.write('A' + "\n");
			else if (cnt == 2)
				bw.write('B' + "\n");
			else if (cnt == 1)
				bw.write('C' + "\n");
			else if (cnt == 0)
				bw.write('D' + "\n");
			else
				bw.write('E' + "\n");
		}

		bw.flush();
	}

}

 

또는 각 조합의 정보를 배열에 담아 입력받은 배, 등의 정보를 더한 값을 인덱스로써 사용해

해당 조합을 출력하는 방식으로 좀 더 코드를 간결하게 작성 가능하다.

 

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;

public class Main {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		StringTokenizer st;
		
		char[] comb = { 'D', 'C', 'B', 'A', 'E' };
		
		for (int i = 0; i < 3; i++) {
			int idx = 0;
			st = new StringTokenizer(br.readLine());
			while (st.hasMoreTokens())
				idx += Integer.parseInt(st.nextToken());

			bw.write(comb[idx] + "\n");
		}

		bw.flush();
	}

}

댓글