코드 복사/붙여넣기 하는 당신이 아름답습니다.

14729 : 칠무해

풀이

제한이 몹시 크다!

정렬하면 큰일난다!

대신, 소수점에 1000을 곱해서 정수 a로 만들어 준 다음에

카운팅 배열 cnt[a]에 체크해주자.

그래봤자 10만개이므로 cnt[0]부터 cnt[100000]까지 돌면 깔끔하게 풀 수 있다.

코드

#include <stdio.h>

int n, a[100001], x, y;
int main() {
	scanf("%d", &n);
	while (n--) {
		scanf("%d.%d", &x, &y);
		a[x*1000+y]++;
	}
	for (int i = 0, c = 0; i <= 100000; i++) {
		while (a[i]) {
			--a[i], ++c;
			printf("%d.%03d\n", i / 1000, i % 1000);
			if (c == 7) return 0;
		}
	}

	return 0;
}

아무말

백준, 백준 온라인 저지, BOJ, Baekjoon Online Judge, C, C++, 씨, 씨쁠쁠, JAVA, algorithm, 자바, 알고리즘, 자료구조, 문제, 문제 풀이, 풀이

wookje.kwon's profile image

wookje.kwon

2017-09-24 01:18

Read more posts by this author