사자자리

[C언어] 백준 9996번: 한국이 그리울 땐 서버에 접속하지 본문

C언어/C언어 문제

[C언어] 백준 9996번: 한국이 그리울 땐 서버에 접속하지

renne 2022. 8. 11. 21:40

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

 

9996번: 한국이 그리울 땐 서버에 접속하지

총 N개의 줄에 걸쳐서, 입력으로 주어진 i번째 파일 이름이 패턴과 일치하면 "DA", 일치하지 않으면 "NE"를 출력한다. 참고로, "DA"는 크로아티어어로 "YES"를, "NE"는 "NO"를 의미한다.

www.acmicpc.net

#include <stdio.h>
#include <string.h>
int main(){
	char pattern[101], left[101] = "", right[101] = "";
	char test[101], tleft[101] = "", tright[101] = "";
	char yesno[100][3];
	int n, star;
	scanf("%d", &n);
	scanf("%s", pattern);
	for (int i = 0; i < strlen(pattern); i++){
		if (pattern[i] == '*') star = i;
	}
	for (int i = 0; i < star; i++){
		left[i] = pattern[i];
	}
	int k = 0;
	for (int i = strlen(pattern) - 1; i > star; i--){
		right[k] = pattern[i];
		k++;
	}
	
	for (int j = 0; j < n; j++){
		scanf("%s", test);
		for (int i = 0; i < star; i++){
			tleft[i] = test[i];
		}
		k = 0;
		for (int i = strlen(test) - 1; i > strlen(test) - (strlen(pattern) - star); i--){
			tright[k] = test[i];
			k++;
		}
		
		if (strcmp(left, tleft) == 0 && strcmp(right, tright) == 0) strcpy(yesno[j], "DA");
		else strcpy(yesno[j], "NE");
		if (strlen(pattern) - 1 > strlen(test)) strcpy(yesno[j], "NE");
	}
	
	for (int j = 0; j < n; j++){
		printf("%s\n", yesno[j]);
	}
	return 0;
}

 

Comments