[백준 21200] Forced Choice (C#, C++) - soo:bak
작성일 :
문제 링크
설명
예측 카드가 각 단계에서 선택된 집합에 포함되었는지에 따라 KEEP 또는 REMOVE를 출력하는 문제입니다.
접근법
각 단계마다 선택된 카드 목록을 입력받고, 그 중에 예측 카드가 있는지 확인합니다.
예측 카드가 포함되어 있으면 KEEP을, 포함되어 있지 않으면 REMOVE를 출력합니다.
Code
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using System;
class Program {
static void Main() {
var first = Console.ReadLine()!.Split();
var n = int.Parse(first[0]);
var p = int.Parse(first[1]);
var s = int.Parse(first[2]);
for (var step = 0; step < s; step++) {
var parts = Console.ReadLine()!.Split();
var m = int.Parse(parts[0]);
var hasP = false;
for (var i = 1; i <= m; i++) {
if (int.Parse(parts[i]) == p) hasP = true;
}
Console.WriteLine(hasP ? "KEEP" : "REMOVE");
}
}
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n, p, s; cin >> n >> p >> s;
while (s--) {
int m; cin >> m;
bool hasP = false;
for (int i = 0; i < m; i++) {
int x; cin >> x;
if (x == p) hasP = true;
}
cout << (hasP ? "KEEP" : "REMOVE") << "\n";
}
return 0;
}