[SWEA] - 6485. 삼성시의 버스노선

jjiani·2021년 2월 14일
0

SWEA

목록 보기
7/20
post-thumbnail

swea - 문제 링크

T = int(input())

for tc in range(1, T+1):
    # N은 버스노선의 갯수
    N = int(input())
    count = [0] * 5001
    # 첫번째 버스부터 시작하기 위해서 range 조심
    for n in range(N):
        A, B = map(int, input().split())
        # A번째 정류장부터 B번째 정류장까지
        for j in range(A, B+1):
            # count리스트에 1씩 더해줌
            count[j] += 1
    # P는 버스정류장의 갯수
    P = int(input())
    # 버스가 지나가는 버스정류장만 담을 리스트값.
    bus_stop = []
    # 버스정류장 번호가 인풋값으로 주어지므로
    for c in range(P):
        # C는 버스정류장 번호
        C = int(input())
        # 버스정류장 리스트에 버스정류장번호의 인덱스를 가진 값을 count 리스트에서 가져옴.
        bus_stop.append(count[C])
    # 리스트는 정수값이 담겨있으므로 문자로 변환하고 빈칸으로 끊어서 한줄로 출력하기.
    print('#{}'.format(tc), ' '.join(map(str, bus_stop)))

🔑 아니 왜 swea는 테스트케이스를 주다 말다 하는 것이냐,,,! 자꾸 런타임 에러가 나와서 한참 고생했네,,, 아니 그럼 런타임에러 이유라도 제대로 알려주시든가요,,, 아님 테스트케이스를 다 주시면 제가 해볼거 아니예여,,,? 증말,,,🤢🤢
구글링 끝에 바꾼것은 range를 다르게 준 것 뿐이다.

  • 처음에는 A, B를 받고 난 뒤 for문을 for j in range(A-1, B) 이렇게 줬는데 그 이유는 A번째 정류장이 0번 정류장일리 없고 문제에도 A는 1보다 크거나 같은 수 라고 했기에 count리스트에 저장되는 위치를 조정하기 위해서(0번째 인덱스값에 1번정류장을 지나는 버스를 카운팅하고자) 한 것인데 그게 문제였다. 왤까...?🤔 문제에서 준 테스트는 그렇게 해도 잘 돌아갔는데,,,? swea에서 돌렸을땐 아예 0개 맞았다. 흠?
    근데 사실 for j in range(A, B+1) 이라고 해도 어차피 나중에 결과값은 count 리스트에서 뽑아올 것이기 때문에 상관없긴 했다.
  • 두번째로 주의해야 했던 것은 인풋값에 C값들이 주어지는데 이것이 버스정류장 번호를 의미한다. 차라리 이 C값을 안주었다면 더 헷갈리지 않고 쉬웠을텐데 일부러 헷갈리라고 넣은거라면 성공적....!😵

결론적으로 런타임에러는 인덱스 값을 이상하게 줘서 그런것인듯... 근데 아직 정확히 왜 그런진 모르겠다,,,
문제자체가 이해하거나 코드짜기가 어렵다기 보다는 인풋값이 너무 많고 그걸 다 받아서 사용해야하기에 헷갈려서 그런듯!

profile
¡Bienvenido a mi velog!🐣

0개의 댓글