STUDY/Algorithm

[백준] 11723 집합 C

sinawi95 2021. 5. 4. 19:16
728x90

www.acmicpc.net/problem/11723

 

11723번: 집합

첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다.

www.acmicpc.net

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>

int main()
{
	int arr[21] = { 0 };
	int T, num;
	char command[7];
	scanf("%d", &T);
	for (int i = 0; i < T; i++) {
		scanf("%s", command);
		scanf("%d", &num);
		//printf("%s %d\n", command, num);
		if (strstr(command, "add")) {
			arr[num] = 1;
		}
		else if (strstr(command, "remove")) {
			arr[num] = 0;
		}
		else if (strstr(command, "check")) {
			if (arr[num]) printf("1\n");
			else printf("0\n");
		}
		else if (strstr(command, "toggle")) {
			if (arr[num]) arr[num] = 0;
			else arr[num] = 1;
		}
		else if (strstr(command, "all")) {
			for (int i = 1; i < 21; i++) {
				arr[i] = 1;
			}
		}
		else if (strstr(command, "empty")) {
			for (int i = 1; i < 21; i++) {
				arr[i] = 0;
			}
		}

	}
	return 0;
}

문자열을 받아오는게 가장 어려웠다.

나머지는 그냥 주어진 조건에 맞게 작성만 하면 되었다.

파이썬에서는 set을 사용해서 하겠지만 C에서는 set을 어떻게 사용해야할지 몰라서 20개의 배열을 만들어놓고 on/off 하는 방식으로 구현했다.

'STUDY > Algorithm' 카테고리의 다른 글

[백준] 1074 Z python  (0) 2021.05.04
[백준] 11724 연결 요소의 개수 python  (0) 2021.05.04
[백준] 11279 최대힙 python  (0) 2021.05.04
[백준] 9095 1, 2, 3 더하기 C python  (0) 2021.05.04
[백준] 2630 색종이 만들기 python  (0) 2021.05.01