아래를 간과해서 런타임 에러가 나버렸다
j번째 정수는 Cj번 버스 정류장을 지나는 버스 노선의 개수여야 한다.
난 처음에 busstop = [0] * (P + 1)으로 했다. 0번 인덱스를 제외하고 사용하면 되니까..
(즉, 만약 버스 정류장 번호가 300,400,200 일 수도 있는데 P+1로 해두면, 버스 번호 반영을 할 수가 없다! 무조건 버스정류장 번호 1번부터라 인지함..)
런타임 에러 코드 :
import sys
sys.stdin = open('s_input.txt')
T = int(input())
for tc in range(1,T+1):
N = int(input())
bus_route = []
for i in range(N):
(a,b)= map(int,input().split())
bus_route.append((a,b))
P = int(input())
for i in range(P):
p = int(input())
busstop = [0] * (P + 1) #-->> 타임에러!!
for start,end in bus_route:
for i in range(start,end+1):
busstop[i] += 1
busstop = busstop[1:]
print(f'#{tc}', *busstop)
고친 코드 :
busstop = [0] * (5000 + 1)
busstop_idx = [int(input()) for _ in range(P)] #정류장 인덱스 살리기
T = int(input())
for tc in range(1,T+1):
N = int(input())
bus_route = []
for i in range(N):
(a,b)= map(int,input().split())
bus_route.append((a,b))
P = int(input())
#for i in range(P):
# p = int(input())
#버스 정류장이 1~5000개 있으므로
busstop = [0] * (5000 + 1)
busstop_idx = [int(input()) for _ in range(P)] #정류장 인덱스 살리기
#인덱스 벗어나서 참조 에러
#bus_route의 (a,b)값은 1~5000사이의 값을 갖고 있으나, busstop의 인덱스 최대값은 P임
for start,end in bus_route:
for i in range(start,end+1):
busstop[i] += 1
#busstop = busstop[1:]
#입력받은 P개의 bus정류장만 출력
print(f'#{tc}', *[busstop[i] for i in busstop_idx])
만약 [0] * P 를 살리고 싶다면?
bus_cnt = [0]*P
T = int(input())
for tc in range(1,T+1):
N = int(input())
bus_route = []
for i in range(N):
(a,b)= map(int,input().split())
bus_route.append((a,b))
P = int(input())
busstop = [int(input()) for _ in range(P)]
bus_cnt = [0]*P
#인덱스 오류
#bus_route의 (a,b)값은 1~5000사이의 값을 갖고 있으나, busstop의 인덱스 최대값은 P임
for start,end in bus_route:
for i, stop in enumerate(busstop) :
if start <= stop <= end :
bus_cnt[i] += 1
print(f'#{tc}', *bus_cnt)
위 내용을 딕셔너리로 아래와 같이 하나로 표현 할 수도 있는데,
테스트 케이스 중에 버스 정류장 값이 중복된 값도 있나봄 fail뜸
이 것을 딕셔너리로 아래와 같이 하나로 표현 할 수도 있는데, 테스트 케이스 중에 버스 정류장 값이 중복된 값도 있나봄 fail뜸
busstop ={int(input()):0 for _ in range(P)}
for start,end in bus_route:
for stop in busstop:
if start <= stop <= end :
busstop[stop] += 1
print(f'#{tc}', *busstop.values())
여러가지 문법이 있다니 신기하다
날 힘들게 한 문제..힁
'SSAFY' 카테고리의 다른 글
[수업기록] Web : HTML & CSS 기초 개념 (0) | 2024.08.19 |
---|---|
[swea 파이썬] 10761. 신뢰 (0) | 2024.08.18 |
[수업기록] 알고리즘 : 문제풀이 (1) | 2024.08.16 |
[수업기록] 알고리즘 : queue (2) (0) | 2024.08.14 |
[수업기록] 알고리즘 : queue (0) | 2024.08.13 |