Day 5. [BOJ 2490] 윷놀이

박정빈·2022년 11월 2일
0

0. 오늘의 사진


절대절대 윷놀이로 돈버는 생각해서 올린 사진 아니고 윷놀이하면 명절이 생각나서 용돈의 의미로 올려본 사진입니다.

1. 문제

우리나라 고유의 윷놀이는 네 개의 윷짝을 던져서 배(0)와 등(1)이 나오는 숫자를 세어 도, 개, 걸, 윷, 모를 결정한다. 네 개 윷짝을 던져서 나온 각 윷짝의 배 혹은 등 정보가 주어질 때 도(배 한 개, 등 세 개), 개(배 두 개, 등 두 개), 걸(배 세 개, 등 한 개), 윷(배 네 개), 모(등 네 개) 중 어떤 것인지를 결정하는 프로그램을 작성하라. 첫째 줄부터 셋째 줄까지 각 줄에 각각 한 번 던진 윷짝들의 상태를 나타내는 네 개의 정수(0 또는 1)가 빈칸을 사이에 두고 주어진다.

2. 문제 해결 방법

  1. 0과 1이 입력된 줄을 총 세 번 입력받는 것이니 3번 반복할 수 있는 for문이 필요
  2. 0과 1 숫자를 총 네 번 입력받는 것이니 총 4번 반복할 수 있는 for문이 필요
    반복문이 아닌 숫자를 따로 4번 입력받을 수도 있으나 반복문을 통해 하나의 문자로 입력받아 0과 1이 각각 몇 번 입력받아졌는지 세는 것이 더 효율적
  3. 한 줄 안에 숫자를 네 번 입력받는게 들어가는 것이므로 이중 for문을 이용
  4. 0과 1을 네 번 입력받아 0이 몇 개 입력받아졌는지를 count0라는 변수를 이용하여 카운트
  5. count0을 이용해 0이 몇 번 입력받아졌는지 센 후 세어진 결과로 A, B, C, D를 출력할 수
    있는 if문 생성

3. 소스코드

#include <stdio.h>

int main() {
	int x;
	
	for (int i = 0; i < 3; i++) {
		int count0 = 0;
		for (int j = 0; j < 4; j++) {
			scanf("%d", &x);
			if (x == 0) count0++;
		}
		if (count0 == 1) printf("A\n");
		else if (count0 == 2) printf("B\n");
		else if (count0 == 3) printf("C\n");		
		else if (count0 == 4) printf("D\n");
		else printf("E\n");
	}
	return 0;
}

4. 회고

int count0 = 0;이라는 변수 초기화는 첫 번째 for문 안에 있어야한다. for문 밖에 있으면 for문을 돌 때마다 카운트를 새로 하는 것이 아니라 전에 돌았을 때 세어놓은 값에다가 추가로 세어져서 출력값이 다르게 나온다. 기본적인 것이지만 초기화문을 어디에 두는 것이 올바른 것인지도 생각하자^^

profile
바른콩

0개의 댓글