[C++] 백준 14670번: 병약한 영정

be_clever·2022년 1월 18일
0

Baekjoon Online Judge

목록 보기
35/172

문제 링크

14670번: 병약한 영정

문제 요약

영정이가 가지고 있는 약의 효능과 이름이 주어진다. 영정이가 겪는 증상이 주어질 때, 어떤 약을 먹어야 하는지 출력해야 한다.

접근 방법

각각의 약은 모두 다른 이름을 가지고 있으며, 서로 다른 증상을 해결함이 보장되기 때문에 간단하게 해결할 수 있습니다. 배열을 선언하고 효능을 인덱스로 해서 약의 이름을 배열에 저장합니다. 그리고 증상을 입력받고 배열의 인덱스로 접근하면 결과를 얻을 수 있습니다.

코드

#include <bits/stdc++.h>

using namespace std;

int arr[101];

int main(void)
{
	int n, r;
	cin >> n;

	fill_n(arr, 101, -1);

	while(n--)
	{
		int me, mn;
		cin >> me >> mn;
		arr[me] = mn;
	}

	cin >> r;
	while(r--)
	{
		int l;
		cin >> l;

		bool flag = false;
		vector<int> v;
		while (l--)
		{
			int s;
			cin >> s;
			if (arr[s] == -1)
				flag = true;
			v.push_back(arr[s]);
		}

		if (flag)
		{
			cout << "YOU DIED\n";
			continue;
		}

		for (auto& i : v)
			cout << i << ' ';
		cout << endl;
	}

	return 0;
}
profile
똑똑해지고 싶어요

0개의 댓글