https://www.acmicpc.net/problem/1946
처음 푼 코드 - 시간 초과
import sys
t = int(sys.stdin.readline())
for i in range(t):
n = int(sys.stdin.readline())
list1 = [0 for i in range(n)]
list2 = [0 for i in range(n)]
for j in range(n):
r1, r2 = map(int, sys.stdin.readline().split())
list1[r1 - 1] = j + 1
list2[r2 - 1] = j + 1
k = n
cnt = 0
for j in list1:
if list2.index(j) < k:
cnt += 1
k = list2.index(j)
print(cnt)
리스트 두개를 만들어서 비교하는게 비효율적이었던 것 같다
그래서 리스트 하나로 합쳐서 다시 풀었다
import sys
t = int(sys.stdin.readline())
for i in range(t):
n = int(sys.stdin.readline())
p = []
for j in range(n):
r1, r2 = map(int, sys.stdin.readline().split())
p.append([r1, r2])
p.sort()
k = n + 1
cnt = 0
for j in range(n):
if p[j][1] < k:
cnt += 1
k = p[j][1]
print(cnt)
푼 방식은 똑같음
생각보다 시간이 좀 걸린 문제였다
멍청하게 중간에 print로 확인 코드 넣었다가 안 지우고 그냥 제출해서 틀림~
'알고리즘 > 백준' 카테고리의 다른 글
백준 13305: 주유소 (Python) (0) | 2022.01.21 |
---|---|
백준 1789: 수들의 합 (Python) (0) | 2021.10.02 |
백준 10162: 전자레인지 (Python) (0) | 2021.09.30 |
백준 2217: 로프 (Python) (2) | 2021.09.29 |
백준 5585: 거스름돈 (Python) (0) | 2021.09.29 |