-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Silver IV] Title: 동방 프로젝트 (Small), Time: 36 ms, Memory: 31120 KB -Ba…
…ekjoonHub
- Loading branch information
1 parent
455859e
commit d5e47f7
Showing
2 changed files
with
62 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
# [Silver IV] 동방 프로젝트 (Small) - 14594 | ||
|
||
[문제 링크](https://www.acmicpc.net/problem/14594) | ||
|
||
### 성능 요약 | ||
|
||
메모리: 31120 KB, 시간: 36 ms | ||
|
||
### 분류 | ||
|
||
구현, 시뮬레이션 | ||
|
||
### 제출 일자 | ||
|
||
2024년 9월 15일 16:14:27 | ||
|
||
### 문제 설명 | ||
|
||
<p>동아리방이 가지고 싶었던 병찬이는 LINK 사업단에 문의하여 N개의 방 중의 하나를 얻을 기회를 얻었다. 일자로 되어있는 건물에 N개의 방은 일직선상에 존재하며, 각 방에는 번호가 매겨져 있다. 맨 왼쪽 방의 번호는 1번이며, 순서대로 증가하여 맨 오른쪽 방의 번호가 N번이다. 각 방 사이에는 방을 구분하는 벽이 존재한다.</p> | ||
|
||
<p>물론 병찬이 외에도 많은 사람이 동아리방을 원한다. 다행히 방은 충분했기에 병찬이는 안심하고 있었지만…</p> | ||
|
||
<p>그때였다.</p> | ||
|
||
<p>빅-종빈빌런이 나타나 건물 벽을 허물기 시작한 것이다! 빅-종빈빌런은 다음과 같은 규칙으로 벽을 무너뜨린다.</p> | ||
|
||
<ul> | ||
<li>x < y 를 만족하는 두 방에 대해서 x번 방부터 y번 방 사이에 있는 모든 벽을 허문다.</li> | ||
<li>두 방 사이의 벽이 허물어지면 두 방은 하나의 방으로 합쳐진다.</li> | ||
<li>이미 허물어진 벽이 존재한다면 무시하고 다음 벽을 허문다.</li> | ||
<li>빅-종빈빌런은 건물이 무너지는 걸 원치 않기 때문에, 1번 방의 왼쪽 벽과 N번 방의 오른쪽 벽(즉, 바깥과 연결된 벽)은 허물지 않는다.</li> | ||
</ul> | ||
|
||
<p>동아리 방의 개수가 점점 줄어들자 병찬이는 초조해졌다. 이에 병찬이는 동아리방을 얻을 수 있는지에 대한 확률을 계산하기 위해 남는 동아리방의 수를 구하고 싶어 한다. 병찬이를 위해 빅-종빈빌런의 행동 횟수 M과 동방의 개수 N이 주어졌을 때, 남은 동아리방의 수를 구해주자.</p> | ||
|
||
### 입력 | ||
|
||
<p>첫 번째 줄에는 동아리방의 개수를 나타내는 양의 정수 N(2 ≤ N ≤ 100) 이 주어진다. 두 번째 줄에는 빅-종빈빌런의 행동 횟수를 나타내는 음이 아닌 정수 M(0 ≤ M ≤ 100) 이 주어진다. 세 번째 줄부터 M개의 줄에 걸쳐 빅-종빈빌런의 행동이 양의 정수 x, y(1 ≤ x < y ≤ N) 로 주어진다. 여기서 행동이란 x번 방부터 y번 방 사이의 벽을 무너뜨리는 것을 의미한다.</p> | ||
|
||
<p>빅-종빈빌런은 매우 허당이기 때문에 동일한 행동을 여러 번 할 수 있음에 유의하라.</p> | ||
|
||
### 출력 | ||
|
||
<p>빅-종빈빌런의 모든 행동이 끝난 후 남아있는 동방의 개수를 한 줄에 출력한다.</p> | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
import sys | ||
readline = lambda: sys.stdin.readline().strip() | ||
|
||
rooms = int(readline()) | ||
actions = int(readline()) | ||
remain_rooms = list(range(1, rooms + 1)) | ||
|
||
|
||
for _ in range(actions): | ||
x, y = map(int, readline().split()) | ||
|
||
for delete_room_num in range(x, y): # y 제외 | ||
if delete_room_num in remain_rooms: | ||
remain_rooms.remove(delete_room_num) | ||
|
||
|
||
print(len(remain_rooms)) |