혜랑's STORY

[여름방학 8주차 C과제] 본문

2020 SISS 21기 활동/여름방학 C언어

[여름방학 8주차 C과제]

hyerang0125 2020. 8. 30. 21:52

#SWEA 1859 : 백만 장자 프로젝트

SWEA 1859번 문제

- 풀이

N의 크기가 크기 때문에 뒤(N-1)부터 계산을 한다. 앞의 날의 매매가가 현재 매매가보다 작은 동안 계속 sum에 현대 매매가를 더해주고 앞의 매매가는 빼준다. 즉, 파는 값은 더해주고 사는 값은 빼주는 것이다. 여기서 mx의 값을 long타입으로 사용한 이유는 날짜가 int의 범위를 넘어갈 수 있기 때문이다.

#include <stdio.h>

int tcase, N;
int mx;
long long sum;
int a[100000];

int main() {

	scanf("%d", &tcase);
	for (int tc = 1; tc <= tcase; tc++) {
		scanf("%d", &N);
		for (int i = 0; i < N; i++) {
			scanf("%d", &a[i]);
		}
		sum = 0;
		mx = a[N - 1];
		for (int i = N - 2; i >= 0; i--) {
			if (a[i] > mx)
				mx = a[i];
			else
				sum += mx - a[i];
		}
		printf("#%d %d\n", tc, sum);
	}
}

- 실행 결과

SWEA 1859번 실행결과

#SWEA 1204 : 최빈수 구하기

 

SWEA 1204번 문제

- 풀이

자릿수가 같지 않으면서 값은 같다면 cnt를 1 증가시키고 최종 cnt값이 maxx_cnt보다 크다면 max_cnt의 값에 cnt를 넣고 max_num에 student[i]값을 넣는다. 또는 cnt값고 max_cnt의 값이 같다면 student[i]와 max_num의 값을 비교하여 더 큰 값은 max_num에 저장을 한다.

#include <stdio.h>

int student[1000];

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

	for (int tc = 1; tc <= tcase; tc++) {
		int max_num = 0, max_cnt = 0;
		int tn;
		scanf("%d", &tn);
		for (int i = 0; i < 1000; i++) {
			scanf("%d", &student[i]);
		}
		for (int i = 0; i < 1000; i++) {
			int cnt = 0;
			for (int j = 0; j < 1000; j++) {
				if (i != j && student[i] == student[j])
					cnt++;
			}
			if (cnt > max_cnt) {
				max_cnt = cnt;
				max_num = student[i];
			}
			else if (cnt == max_cnt) {
				max_num = student[i];
			}
		}
		printf("#%d %d\n", tn, max_num);
	}

	return 0;
}

- 실행결과

SWEA_1204번 실행결과

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

[여름방학 7주차 C과제]  (0) 2020.08.20
[여름방학 6주차 C과제]  (0) 2020.08.15
[여름방학 5주차 C과제]  (0) 2020.08.07
[여름방학 4주차 C과제]  (0) 2020.08.02
[여름방학 3주차 C과제]  (0) 2020.07.24