PS (C, C++)

[백준/C++] 15723 n단 논법

최연재 2024. 11. 11. 21:30

https://www.acmicpc.net/problem/15723

코드

#include <iostream>
#include <string>
using namespace std;

#define FASTIO ios::sync_with_stdio(false); cin.tie(NULL);
int n, m, parent[27];

int main() {
	FASTIO;
	fill(parent, parent + 27, -1);

	cin >> n;
	string a, tmp, b;
	for (int i = 0; i < n; i++) {
		cin >> a >> tmp >> b;
		parent[a[0] - 'a'] = b[0] - 'a';
	}

	cin >> m;
	for (int i = 0, s, e; i < m; i++) {
		cin >> a >> tmp >> b;
		s = a[0] - 'a', e = b[0] - 'a';
		while (s != e && parent[s] != -1)
			s = parent[s];

		if (s == e) cout << "T\n";
		else cout << "F\n";
	}
	return 0;
}

설명

a is b 관계는 a에서 b로 갈 수 있음을 의미하니 이를 parent 배열에 기록합니다. m개의 결론을 받으면 a에서 출발해서 b로 도착할 수 있는지를 반복문으로 확인한 후에 최종 결과에 따라 T 혹은 F를 출력하면 됩니다.

 

느낀 점

parent 배열 초기화와 관련해서 한 번 틀렸었습니다. 관련 코드를 추가한 후 제출하니 맞았습니다.

'PS (C, C++)' 카테고리의 다른 글

[백준/C++] 6593 상범 빌딩  (0) 2024.11.15
[백준/C++] 14226 이모티콘  (2) 2024.11.14
[백준/C++] 13565 침투  (0) 2024.11.10
[백준/C++] 1058 친구  (0) 2024.11.09
[백준/C++] 6118 숨바꼭질  (0) 2024.11.08