article thumbnail image
Published 2022. 9. 21. 22:48

문제: https://www.acmicpc.net/problem/2490

 

 

 

 

: 처음 작성한 코드

#include <iostream>
using namespace std;
int main()
{
  int stick[4];
  int front;

  for (int i = 0; i < 3; i++)
  {
    front = 0;
    for (int j = 0; j < 4; j++)
    {
      cin >> stick[j];
      (stick[j] == 0) && front++;
    }
    switch (front)
    {
    case 0:
      cout << 'E' << '\n';
      break;
    case 1:
      cout << 'A' << '\n';
      break;
    case 2:
      cout << 'B' << '\n';
      break;
    case 3:
      cout << 'C' << '\n';
      break;
    case 4:
      cout << 'D' << '\n';
      break;
    }
  }
}

각 윷의 상태를 알 수 있게 크기가 4인 배열을 만들었다.

테스트 케이스가 총 3개이니 반복문이 3번 돌게 하고 그 안쪽에서 윷 계산 로직을 작성했다.

총 4개의 윳에 대한 배(0) / 등(1) 상태를 입력받고, 0의 개수를 카운트했다.

0은 배를 나타내므로 1개라면 도, 2개라면 개, ... 이기 때문에 switch문을 사용해서 각 경우에 대한 출력을 해줬다.

 

 

 

그런데 채점 현황을 보다가 다른 분이 작성한 좋은 코드를 발견해서 공유해본다.

#include <iostream>
using namespace std;

int main() {
	int n, total;
	for (int i = 0; i < 3; i++) {
		total = 0;
		for (int j = 0; j < 4; j++) {
			cin >> n;
			total += n;
		}
		switch (total) {
		case 0:
			cout << 'D' << '\n';
			break;
		case 1:
			cout << 'C' << '\n';
			break;
		case 2:
			cout << 'B' << '\n';
			break;
		case 3:
			cout << 'A' << '\n';
			break;
		default:
			cout << 'E' << '\n';
		}
	}
	return 0;
}

백준 아이디: ghtn

 

 

 

이분 아이디어로 나도 다시 수정해봤다.

 

 

 

: 다시 수정한 코드

#include <iostream>
using namespace std;
int main()
{
  int stick;
  int result;

  for (int i = 0; i < 3; i++)
  {
    result = 0;
    for (int j = 0; j < 4; j++)
    {
      cin >> stick;
      result += stick;
    }
    switch (result)
    {
    case 0:
      cout << 'D' << '\n';
      break;
    case 1:
      cout << 'C' << '\n';
      break;
    case 2:
      cout << 'B' << '\n';
      break;
    case 3:
      cout << 'A' << '\n';
      break;
    case 4:
      cout << 'E' << '\n';
      break;
    }
  }
}

 

 

 

 

 

 

 

 

'알고리즘' 카테고리의 다른 글

[BOJ] 2562: 최댓값  (1) 2022.09.21
[BOJ] 2309: 일곱 난쟁이  (1) 2022.09.21
[BOJ] 10871: X보다 작은 수  (0) 2022.09.21
[HackerRank] Mini-Max Sum  (0) 2021.11.21
[HackerRank] Sherlock and Array  (0) 2021.11.21
복사했습니다!