728x90
반응형
문제
https://www.acmicpc.net/problem/1931
표준 입력 기능을 사용하기 위해 sys모듈 추가.
import sys
정수 하나를 입력.
정수 쌍을 저장하기 위한 리스트 생성.
입력받은 정수만큼 반복.
- 두 숫자를 하나의 쌍으로 하여 입력받음
- 두 숫자를 입력받아 리스트에 저장할 때 한 쌍의 숫자를 저장하는 리스트로 만들어 저장.
* 여기서 주의할 점은 두 숫자의 배치를 역순으로 (두 번째 정수, 첫 번째 정수) 저장함.
n = int(sys.stdin.readline())
data = []
for _ in range(n):
start, end = map(int, sys.stdin.readline().split())
data.append([end, start])
숫자 쌍을 저장하고 있는 리스트를 정렬함.
* 회의가 끝나는 시간을 기준으로 오름차순 정렬을 함(한 쌍의 숫자 중 두 번째 정수에 해당 => 0번째 인덱스에 저장).
* 회의가 끝나는 시간이 같은 경우 시작 시간을 기준으로 오름차순 정렬함(한 쌍의 숫자 중 첫 번째 정수에 해당 => 1번째 인덱스에 저장).
* python 정렬 관련 함수 및 메소드(sort, sorted)는 요소가 두 개 이상을 갖는 자료구조이면 앞 쪽(0번째 인덱스)부터 정렬 기준으로 하기 때문에 위의 코드에서 숫자 쌍을 저장할 때 배치를 바꿔 저장함.
data.sort()
개수 변수와 시간 변수를 생성.
숫자 쌍을 반복문을 이용하여 탐색.
- 만일 시작 시간이 현재 시간 이상이면 개수 증가 및 현재 시간을 종료 시간으로 저장.
개수 출력.
count = 0
t = 0
for d in data:
if d[1] >= t:
count += 1
t = d[0]
print(count)
전체 코드.
import sys
n = int(sys.stdin.readline())
data = []
for _ in range(n):
start, end = map(int, sys.stdin.readline().split())
data.append([end, start])
data.sort()
count = 0
t = 0
for d in data:
if d[1] >= t:
count += 1
t = d[0]
print(count)
728x90
반응형
'코딩 > 공부' 카테고리의 다른 글
[Python] 백준 11047번 - 동전 0 (0) | 2024.03.12 |
---|---|
[Python] 백준 11399번 - ATM (0) | 2024.03.11 |
[Python] 백준 2839번 - 설탕 배달 (0) | 2024.03.11 |
[Python] 백준 5585번 - 거스름돈 (0) | 2024.03.11 |
[Python] 백준 2798번 - 블랙잭 (1) | 2024.02.13 |