혜랑's STORY

[2020-2학기 9주차 C언어] 본문

2020 SISS 21기 활동/2학기 C언어

[2020-2학기 9주차 C언어]

hyerang0125 2020. 11. 29. 02:22

#SWEA 7272 : 안경이 없어!

- 풀이

문자ㅇ에 나 있는 구멍의 개수가 같으면 같은 문자이고, 다르면 다른 문자라고 생각하기 때문에 각 문자열을 입력받아 문자열에 있는 구멍의 개수가 같으면 "SAME", 다르면 "DIFF"를 출력하면 되는 문제이다. (어디가 문제인지 모르겠지만 9619개 맞았다고 해서 통과 못함... 화난다...)

- 코드

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

int main() {
	char arr[] = "ADOPQR";

	int T;
	static char str1[100], str2[100];

	scanf("%d", &T);

	for (int tc = 1; tc <= T; tc++) {
		int num1 = 0, num2 = 0;
		scanf("%s %s", str1, str2);

		for (int i = 0; str1[i]; i++) {
			char ch = str1[i];
			if (ch == 'B')
				num1 += 2;
			else {
				for (int j = 0; j < 7; j++) {
					if (ch == arr[j]) {
						num1++;
						break;
					}
				}
			}

			ch = str2[i];
			if (ch == 'B')
				num2 += 2;
			else {
				for (int j = 0; j < 7; j++) {
					if (ch == arr[j]) {
						num2++;
						break;
					}
				}
			}
		}

		if (num1 == num2)
			printf("#%d SAME\n", tc);
		else
			printf("#%d DIFF\n", tc);
	}
	return 0;
}

- 실행결과

 

#SWEA 10804 : 문자열의 거울상

- 풀이

입력받은 문자열의 각 문자를 거울에 비추었을 때의 문자로 변환한 뒤, 문자열 뒤에서부터 출력하면 된다.

- 코드

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

int main() {
	int T;
	char str[1001];
	scanf("%d", &T);

	for (int tc = 1; tc <= T; tc++) {
		scanf("%s", str);
		printf("#%d ", tc);

		for (int i = 0; str[i]; i++) {
			if (str[i] == 'p') {
				str[i] = 'q';
				continue;
			}
			else if (str[i] == 'q') {
				str[i] = 'p';
				continue;
			}
			else if (str[i] == 'b') {
				str[i] = 'd';
				continue;
			}
			else if (str[i] == 'd') {
				str[i] = 'b';
				continue;
			}
		}

		for (int i = strlen(str) - 1; i >= 0; i--)
			printf("%c", str[i]);
		putchar('\n');
	}
	return 0;
}

- 실행결과

'2020 SISS 21기 활동 > 2학기 C언어' 카테고리의 다른 글

[2020-2학기 C언어 8주차]  (0) 2020.11.18
[2020-2학기 C언어 7주차]  (0) 2020.11.09
[2020-2학기 C과제 6주차]  (0) 2020.11.07
[2020-2학기 C과제 4주차]  (0) 2020.10.02
[2020-2학기 C과제 3주차]  (0) 2020.09.21