혜랑's STORY

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

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

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

hyerang0125 2020. 9. 4. 22:47

#SWEA 9940 : 순열1

SWEA 9940번 문제

- 풀이

 입력받은 수들이 순열인지 알아내는 방법으로는 숫자들을 오름차순으로 정렬한 뒤, 1부터 N까지 자리수+1을 한 값과 일치 하는지 비교해보는 방법이 있다.

- 코드

#include <stdio.h>
#include <stdlib.h>

//숫자들을 정렬하는 함수
void mySort(int* X, int N) {
	for (int i = 0; i < N; i++) {
		for (int j = 0; j < N - 1; j++) {
			if (*(X+j)>*(X+j+1)) {
				int temp = *(X+j);
				*(X+j) = *(X+j+1);
				*(X+j+1) = temp;
			}
		}
	}
}

//순열인지 확인하는 함수
int solved(int X[], int N) {
	for (int i = 0; i < N; i++) {
		if (X[i] != i + 1) {
			return -1;
			break;
		}
	}

	return 1;
}

int main() {
	int TC, N;
	scanf("%d", &TC);

	for (int tc = 1; tc <= TC; tc++) {
		scanf("%d", &N);
		int* num = (int*)malloc(sizeof(int) * N);
		for (int i = 0; i < N; i++) {
			scanf("%d", &num[i]);
		}

		mySort(num,N);

		int result = solved(num, N);

		if (result == 1)
			printf("#%d Yes\n", tc);
		else
			printf("#%d No\n", tc);
	}

	return 0;
}

- 실행결과

SWEA 9940번 실행결과

 

#SWEA 9997 : 미니멀리즘 시계

SWEA 9997번 문제

- 풀이

1분당 약 0.5º가 움직이므로 주어진 각도에 2를 곱한 뒤, 60으로 나눈 몫이 시간이고 나머지가 분이다. 오전과 오후를 구분하지 않기 때문에 시간이 12이상인 경우엔 12를 뺀 값을 출력 해주어야 한다.

- 코드

#include <stdio.h>

int main() {
	int T,angle;
	scanf("%d", &T);

	for (int tc = 1; tc <= T; tc++) {
		scanf("%d", &angle);

		int h = angle * 2 / 60;
		int m = angle * 2 % 60;

		if (h > 11)
			printf("#%d %d %d\n", tc, h - 12, m);
		else
			printf("#%d %d %d\n", tc, h, m);
	}
	return 0;
}

- 실행사진

SWEA 9997번 실행사진

 

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

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