Deep Learning through deep learning

백준 27160번 할리갈리 본문

Baekjoon_algorithm_heuristic

백준 27160번 할리갈리

NeuroN 2023. 2. 2. 11:28

https://www.acmicpc.net/

 

Baekjoon Online Judge

Baekjoon Online Judge 프로그래밍 문제를 풀고 온라인으로 채점받을 수 있는 곳입니다.

www.acmicpc.net

문제 해석

더보기
  1. 과일 종류는 4가지 (STRAWBERRY, BANANA, LIME, PLUM)
  2. 과일 카드가 합해서 5개가 되었을 때 종을 울려야 함 (YES)
  3. 5 초과, 미만인 경우는 종을 울리면 안됨!

코드 해석

더보기
  1. 게임을 진행하는 사람 수 N 변수 입력
  2. 과일 이름 문자열 담을 배열 a 생성
  3. 각 과일마다 나온 횟수 저장하는 배열 a_int생성
  4. 각 사람마다 과일, 개수 입력할 변수 b,c 생성
  5. a_int배열에는 과일의 횟수가 담기는데, a에서 0번째 인덱스가 STRAWBERRY라면 a_int의 0번째 인덱스는 STRAWBERRY의 횟수를 의미
  6. for문으로 N명의 사람들이 한번씩 b,c를 입력하고, a == b 인경우, 즉 과일 이름이 담긴 문자열에 같은 문자열 b가 매칭되는 경우
  7. 과일 횟수인 c를 a_int 의 해당 과일 인덱스에 더해줌 (초기에는 횟수가 0이므로 a_int는 모두 0으로 초기화되어 있음)
  8. 다음 for문에서는 과일 종류만큼 4번의 반복을 통해, a_int에서 과일 횟수가 정확히 5인경우에만 YES출력, 나머지는 NO 출력

코드

#include <iostream>
#include <math.h>
#include <algorithm>
#include <vector>
#include <string>
using namespace std;

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    int N; cin >> N;

    string a[4] = {};
    int a_int[4] = {};
    string b;
    int c;

    a[0] = "STRAWBERRY";
    a[1] = "BANANA";
    a[2] = "LIME";
    a[3] = "PLUM";

    for (int i = 0; i < N; i++)
    {
        cin >> b >> c;
        for (int j = 0; j < 4; j++)
        {
            if (a[j] == b)
            {
                a_int[j] += c;
            }
        }
    }
    for (int j = 0; j < 4; j++)
    {
        if (a_int[j] == 5)
        {
            cout << "YES";
            return 0;
        }
    }
    cout << "NO";

}

'Baekjoon_algorithm_heuristic' 카테고리의 다른 글

백준 2566번 최댓값  (0) 2023.02.02
백준 2587번 대표값2  (0) 2023.02.02
백준 2445번 별찍기-8  (0) 2023.02.02
백준 10991번 별 찍기-16  (0) 2023.02.02
백준 27159번 노 땡스!  (0) 2023.02.02