상세 컨텐츠

본문 제목

2369. [AtCoder Beginner Contest 073] B. Theater

PROGRAMMING/Algorithm

by koharin 2019. 6. 29. 17:43

본문

728x90
반응형

Joisino is working as a receptionist at a theater.

The theater has 100000 seats, numbered from 1 to 100000.

According to her memo, N groups of audiences have come so far, and the i-th group occupies the consecutive seats from Seat Li to Seat Ri (inclusive).

How many people are sitting at the theater now?



Constraints

1. 1 ≤ N ≤ 1000

2. 1 ≤ Li ≤ Ri ≤ 100000

3. No seat is occupied by more than one person.

4. All input values are integers.


Input

The first line of the input contains an integer T, the number of test sets (1 ≤ T ≤ 10).

For each test set, the input is given from Standard Input in the following format:

 

Output

For each test case, print “#T”(test case number), and the number of people sitting at the theater.

 

첫 줄에 그룹 수 N을 입력받고, 

둘 째줄부터 각 test case에 대한 첫 줄에 그룹 수 N, 다음 줄에는 각 그룹이 앉은 좌석 처음과 마지막을 입력한다.

입력 예시를 보면 

line 1 : 테스트 케이스 수 T = 2

line 2: 테스트 케이스 #1에 대한 그룹 수 N = 1

line 3: #1의 그룹 수 1개이므로 한 그룹이 앉은 곳만 준 것. 처음은 24이고, 끝은 30이다. (이때 30 포함)

line 4: 테스트 케이스 #2에 대한 그룹 수 N = 2

line 5: #2의 첫 번째 그룹 앉은 곳. 6부터 8까지 앉음. 

line 6: #2의 두 번째 그룹 앉은 곳. 3부터 3에 앉음. 1명일 때는 L과 R을 똑같게 준다. => L과 R이 똑같으면 1명으로 처리하거나 R - L == 0이면 1명으로 처리

 

R - L로 각 그룹의 인원 수를 구하도록 하겠다. 

그룹의 인원 수 = R - L + 1

 

 

 

일단 각 test case에서 전체 관람객 수를 어떻게 구할지 생각해봤다.

b에 각 그룹에 대한 정보가 저장되었을 때, for문을 사용해서 b의 각 원소를 split하고, s에서 i에 대한 인원 수를 구해서 a에 저장했다. a는 test case에서 각 그룹의 인원 수가 원소로 저장되어 있는 것이다.

이제 a 원소를 모두 합한 것이 test case에서 전체 관람객 수인데 sum을 사용하면 되겠다고 생각해서

sum(a)로 해봤더니 됐다. 이제 한 test case에서는 설계가 끝났다.

 

테스트 케이스 c 배열

c = [['24 30'], ['6 8', '3 3']]

이렇게 저장해서 각 테스트 케이스에 대한 전체 관람객 수를 구하기 위해 접근하면 될 것 같다.

 

 

이런 방법으로 하면 될 것 같다.

 

 

sum을 이용하기 위해 처음 쓴 코드를 이렇게 바꿨다.

k 배열을 삭제하고 다시 삭제하는 이유는 다음 테스트 케이스에서 또 사용해서 sum 함수를 하는데 이전 것까지 sum을 수행하면 안 되기 때문이다. 

이제 위의 코드와 이번 코드를 합해보자.

 

아, 또 고려해야 할 것이 있었다.

이제 구한 것을 출력해야 하는데

 

 

코드가 너무 길어지지만...일단 이렇게 해보도록 하자.

 

 

전체 코드는 이렇게 되고, 실행하면

 

 

제대로 출력된다.

코드가 생각보다 긴 것이 아쉽지만 제출해보자.

 

 

 

 

Pass.

728x90
반응형

관련글 더보기