알고리즘 모음(C++)

백준 18766 - 카드 바꿔치기(C++) 본문

백준

백준 18766 - 카드 바꿔치기(C++)

공대생의 잡다한 사전 2022. 3. 25. 03:01

문제 링크입니다. https://www.acmicpc.net/problem/18766

 

18766번: 카드 바꿔치기

범고래와 돌고래는 카드놀이를 좋아한다. 각 카드는 빨강 (R), 노랑 (Y), 파랑 (B) 중 하나의 색으로 칠해져 있고 0-9 사이의 숫자가 적혀있다. 색과 숫자가 같은 카드가 여러 장 있을 수도 있다. 최

www.acmicpc.net

정렬을 이용해 푸는 문제입니다.

돌고래가 카드를 바꿔치기 했는지의 여부를 판단하는 문제입니다.

2개의 문자열 배열이 주어지는데, 두 문자열 배열이 일치하다면 -> 바꿔치기 X

                                                       두 문자열 배열이 다르다면 -> 바꿔치기 0

 

따라서 두 문자열 배열을 같게 만들어줘야합니다. 

각 문자열 배열을 정렬을 시킨뒤, 전부 비교해주면 됩니다.

 

 

자세한 것은 코드를 참고해주세요

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <vector>
#include <cstring>
#include <string>
#include <queue>
#include <stack>
#include <cmath>
#define INF 98765432100

using namespace std;

int test_case, N;

void solve() {
	cin >> N;
	vector<string> card_1, card_2;
	for (int i = 1; i <= N; i++) {
		string x;
		cin >> x;
		card_1.push_back(x);
	}
	for (int i = 1; i <= N; i++) {
		string x;
		cin >> x;
		card_2.push_back(x);
	}
	sort(card_1.begin(), card_1.end());
	sort(card_2.begin(), card_2.end());
	for (int i = 0; i < N; i++) {
		if (card_1[i] != card_2[i]) {
			cout << "CHEATER\n";
			return;
		}
	}
	cout << "NOT CHEATER\n";
}

int main()
{
	cin.tie(0);
	cout.tie(0);
	cin >> test_case;
	for (int i = 1; i <= test_case; i++) {
		solve();
	}
	return 0;
}

 

 

질문 및 조언 댓글 남겨주세요

'백준' 카테고리의 다른 글

백준 3184 - 양(C++)  (0) 2022.04.12
백준 2665 - 미로만들기(C++)  (0) 2022.03.26
백준 23055 - 공사장 표지판(C++)  (0) 2022.03.25
백준 5972 - 택배 배송(C++)  (0) 2022.03.25
백준 21312 - 홀짝 칵테일(C++)  (0) 2022.03.23