SWEA_8500) 극장 좌석
SWEA
# D3
8500) 극장 좌석 (19.10.21)
문제 링크 (SW Expert Academy)
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
 | 
import java.io.*; 
import java.util.*; 
public class Solution { 
    public static void main(String args[]) throws IOException{ 
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); 
        StringTokenizer tk; 
        int test = Integer.parseInt(br.readLine()); 
        for(int t=1; t<=test; t++) { 
            int n = Integer.parseInt(br.readLine()); 
            int[] arr = new int[n]; 
            tk = new StringTokenizer(br.readLine()); 
            for(int i=0;i<n;i++) { 
                arr[i] = Integer.parseInt(tk.nextToken()); 
            } 
            Arrays.sort(arr); 
            int ans = n+ arr[0]+ arr[1]; 
            for(int i=2;i<n;i++) { 
                if(i==n-1) ans = ans+ (arr[i]*2); 
                else ans = ans+ arr[i]; 
            } 
            bw.write("#" + t + " " + ans + "\n"); 
        } 
        bw.flush(); 
        bw.close(); 
    } 
} 
 | cs | 
* 양 끝의 빈 좌석 개수를 가장 작은 숫자로 설정하고,
* 사람들 사이의 빈 좌석 개수를 계산 할 때는 가장 큰 숫자는 항상 선택되니까
* 그걸 두번 더해주고 나머지는 한번씩 더해주면 된다.
* 어떻게 하나 생각하다가 사람이 번호순대로 앉은게 아니라고 해서 식을 만들어봤다.
댓글
댓글 쓰기