혜랑's STORY

[2020-2학기 C과제 3주차] 본문

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

[2020-2학기 C과제 3주차]

hyerang0125 2020. 9. 21. 20:45

# SWEA 10570 : 제곱 팰린드롬 수

SWEA 10570번 문제

- 풀이

1부터 1000 사이의 팰린드롬 수는 1, 4, 9, 121, 484 총 5개이다. 즉, 문제를 해결하기 위한 방법은 A와 B 사이에 팰린드롬 수가 총 몇개가 포함되는지 확인하면 되는 것이다.

- 코드

#include <stdio.h>

int main() {
	int TC, A, B;

	scanf("%d", &TC);

	for (int tc = 1; tc <= TC; tc++) {
		scanf("%d %d", &A, &B);
		int cnt = 0;
		for (int i = 1; i <= B; i++) {
			if (A <= i && i <= B) {
				switch (i) {
				case 1:
					cnt++;
					break;
				case 4:
					cnt++;
					break;
				case 9:
					cnt++;
					break;
				case 121:
					cnt++;
					break;
				case 484:
					cnt++;
					break;
				default:
					break;
				}

			}

		}
		printf("#%d %d\n", tc, cnt);
	}
}

- 실행화면

SWEA 10570번 실행화면

 

# SWEA 9700 : USB 꽂기의 미스터리

SWEA 9700번 문제

- 풀이

p : 방향의 확률 / q : 꽂아질 확률

  • S1 : 1번 뒤집어서 성공 (올바른 면 : 1-p )

즉, 원래 방향이 뒤집어져 있었고, 뒤집어서 성공하는 경우의 확률은 (1-p)*q이다.

  • S2 : 2번 뒤집어서 성공 (올바른 면 : p)

즉, 원래의 방향이 옳지만, (1-q)의 확률로 실패하였다. 그렇기 때문에 2번째에 성공하는 경우의 확률은 p*(1-q)*q이다.

- 코드

#include <stdio.h>

int main() {
	int T;
	float p, q;
	scanf("%d", &T);

	for (int tc = 1; tc <= T; tc++) {
		scanf("%f %f", &p, &q);
		
		float s1 = 1 * (1 - p) * q;
		float s2 = 1 * p * (1 - q) * q;

		if (s1 <= s2)
			printf("#%d YES\n", tc);
		else
			printf("#%d NO\n", tc);
	}

	return 0;
}

- 실행결과

SWEA 9700번 실행결과

 

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

[2020-2학기 C과제 6주차]  (0) 2020.11.07
[2020-2학기 C과제 4주차]  (0) 2020.10.02
[2020-2학기 C과제 추가]  (0) 2020.09.15
[2020-2학기 C과제 2주차]  (0) 2020.09.15
[2020-2학기 C과제 1주차]  (0) 2020.09.04