[Java] 백준 2490번 윷놀이

xyzw·2023년 3월 18일
0

algorithm

목록 보기
7/12

문제

우리나라 고유의 윷놀이는 네 개의 윷짝을 던져서 배(0)와 등(1)이 나오는 숫자를 세어 도, 개, 걸, 윷, 모를 결정한다. 네 개 윷짝을 던져서 나온 각 윷짝의 배 혹은 등 정보가 주어질 때 도(배 한 개, 등 세 개), 개(배 두 개, 등 두 개), 걸(배 세 개, 등 한 개), 윷(배 네 개), 모(등 네 개) 중 어떤 것인지를 결정하는 프로그램을 작성하라.

입력

첫째 줄부터 셋째 줄까지 각 줄에 각각 한 번 던진 윷짝들의 상태를 나타내는 네 개의 정수(0 또는 1)가 빈칸을 사이에 두고 주어진다.

출력

첫째 줄부터 셋째 줄까지 한 줄에 하나씩 결과를 도는 A, 개는 B, 걸은 C, 윷은 D, 모는 E로 출력한다.


풀이

0의 개수, 또는 1의 개수에 따라 알맞은 문자를 출력하면 된다.

결과0의 개수1의 개수
도 (A)13
개 (B)22
걸 (C)31
윷 (D)40
모 (E)04

도, 개, 걸, 윷, 모의 순서로는 0의 개수에 따라 코드를 짜는 것이 더욱 깔끔해 보인다.

0의 개수에 따라 윷짝들의 상태 식별하기

0의 개수를 저장하는 변수 count를 만들고, switch 문을 이용하여 count의 값에 따라 문자를 출력한다.

int count = 0;
for (int j = 0; j < values[i].length; j++)
	if (values[i][j] == 0)
		count++;

switch (count) {
    case 1:
        answer.add("A");
        break;
    case 2:
        answer.add("B");
        break;
    case 3:
        answer.add("C");
        break;
    case 4:
		answer.add("D");
        break;
    case 0:
        answer.add("E");
        break;
}

전체 코드

import java.util.*;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		List<String> answer = new ArrayList<>();
		
		Integer[][] values = new Integer[3][4];
		
		for(int i=0; i<values.length; i++)
			for(int j=0; j<values[i].length; j++)
				values[i][j] = sc.nextInt();
		
		for(int i = 0; i < values.length; i++) {
            int count = 0;
            for (int j = 0; j < values[i].length; j++)
                if (values[i][j] == 0)
                    count++;

            switch (count) {
                case 1:
                    answer.add("A");
                    break;
                case 2:
                    answer.add("B");
                    break;
                case 3:
                    answer.add("C");
                    break;
                case 4:
                    answer.add("D");
                    break;
                case 0:
                    answer.add("E");
                    break;
            }
        }
		
		for(int i=0; i<answer.size(); i++)
			System.out.println(answer.get(i));
	}
}

0개의 댓글