본문 바로가기

매일 알고리즘 2문제

10431 줄세우기

 어려운 문제를 푸려다가, 모르는 알고리즘에 부딫혀 한동안 쉬운 문제만 또 풀게되었다..ㅠㅠㅠ

이번에는 조금 어려운 문제 해설을 올리고 싶었으나, 우선은 ACM 기출문제 (이것도 정답률 높은 문제) 를 올린다.


줄세우기는 같은 이름의 다양한 문제가 많은데, 이번 문제의 경우 기본 규칙? 정도만 알면 쉽게 접근할 수 있는 문제이다.


 우선 현재 자신의 위치보다 앞에 키가 큰 학생이 있다면 바꾸어주어야 하기 때문에 정렬알고리즘을 생각하면 비교적 짧은 코드에

 구현 가능할 것이라 생각한다.



 <소스코드>


#include <cstdio>

int T,num[21],N;

int main() {
	scanf("%d", &T);
	while(T--){
		int sum = 0;
		scanf("%d", &N);
		for (int i = 0; i < 20; i++) scanf("%d", num + i);
		for (int i = 1; i < 20; i++) {
			for (int j = 0; j < i; j++) {
				if (num[j] > num[i]) sum++;
			}
		}
		printf("%d %d\n",N,sum);
	}
	return 0;
}


'매일 알고리즘 2문제' 카테고리의 다른 글

2294 동전2  (0) 2018.02.21
2293 동전1  (0) 2018.02.20
1002 터렛  (0) 2018.02.07
10426 기념일2  (0) 2018.02.07
3231 카드놀이  (0) 2018.02.07