본문 바로가기

문제풀이/C 문제풀이

[SWEA]8500 극장 좌석

이 문제는 결국 각 좌석 Ai들의 합에 Ai의 최댓값과 N을 더하면 되는 문제이다.

#include <stdio.h>
int main(void)
{
	int test_case;
	int T;
	setbuf(stdout, NULL);
	scanf("%d", &T);
    
	for (test_case = 1; test_case <= T; ++test_case)
	{
		int n, a, s=0, m=0;
		scanf("%d", &n);
		for (int i=0;i<n;i++, s+=a) {
			scanf("%d", &a);
			if (a>m) m=a; // 최댓값 구하기
		}
        	printf("#%d %d\n", test_case, s+n+m); // Ai들의 합 + 개수+ Ai의 최댓값
	}
	return 0; //정상종료시 반드시 0을 리턴해야 합니다.
}


5 2 3 1 4
5 4 4
3 2 2 2

다음과 같은 경우의 수를 생각해서 규칙을 알아낼 수 있었다.
우선 Ai가 가장 큰 좌석이 있다면 그 옆으로 그 다음으로 가장 큰 Ai의 좌석을 배치하면 된다.
그런 식으로 한다면 위와 같은 식임을 알아낼 수 있다.

+) 아무도 못 알아보겠지만... 풀이과정

'문제풀이 > C 문제풀이' 카테고리의 다른 글

[SWEA]7728 다양성 측정  (0) 2019.09.18
[SWEA]3456 직사각형 길이 찾기  (0) 2019.09.18
[SWEA]7732 시간 개념  (0) 2019.09.17
[SWEA]8104 조 만들기  (0) 2019.09.16
[SWEA]8457 알 덴테 스파게티  (0) 2019.09.16