rueki
SW Expert Academy 8500. 극장 좌석 본문
728x90
반응형
문제링크 :
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
#include <iostream>
using namespace std;
int main()
{
int T;
cin >> T;
for (int t = 1; t <= T; t++)
{
int N = 0, max = 0;
int result = 0;
cin >> N;
int* arr = new int[N];
for (int i = 0; i < N; i++)
{
cin >> arr[i];
if (max < arr[i])
{
max = arr[i];
}
result += arr[i] + 1;
}
result += max;
cout << "#" << t << ' ' << result << '\n';
delete[] arr;
}
}
극장 자리의 최소 자리의 개수를 찾는 문제이다.
2번이 들어왔을 때는 최소 5개의 자리가 필요하고
3번은 최소 7개의 자리가 필요하지만, 이들이 나란히 앉을 때 중복되는 자리를 빼야 최소의 자리수가 나온다
예를 들면 0 을 빈 자리라고 하고
2번과 3번이 들어왔을 때,
0 0 2 0 0
0 0 0 3 0 0 0
위와 같은 구조를 띄게 되며 일렬로 나열하면 아래와 같다.
0 0 2 0 0 0 3 0 0 0
이랬을 때, (0 0 2 + 0 0 0 3)을 하고 나면 남는 빈자리는 3개인데, 이 수는 N번 에서 N과 같기에
각 입력 숫자를 더하고 최대값으로 들어온 숫자를 넣으면 최소자리 계산이 된다.
728x90
반응형
'C, C++ 문제풀이' 카테고리의 다른 글
프로그래머스- 타겟넘버(DFS) (0) | 2020.10.21 |
---|---|
이진트리 순회 (0) | 2020.10.06 |
SW Expert Academy 8673. 코딩 토너먼트1 (0) | 2020.04.14 |
SW Expert Academy 8821. 적고 지우기 (0) | 2020.04.12 |
SW Expert Academy 8931. 제로 (0) | 2020.04.07 |
Comments