본문 바로가기
TIL - 프로그래밍/Python 알고리즘

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

by chaemj97 2022. 2. 18.
728x90

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWczm7QaACgDFAWn 

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

< 📝 문제 >

 

삼성시에 있는 5,000개의 버스 정류장은 관리의 편의를 위해 1에서 5,000까지 번호가 붙어 있다.

그리고 버스 노선은 N개가 있는데, i번째 버스 노선은 번호가 Ai이상이고, Bi이하인 모든 정류장만을 다니는 버스 노선이

 

다. P개의 버스 정류장에 대해 각 정류장에 몇 개의 버스 노선이 다니는지 구하는 프로그램을 작성하라.


< ❓ 생각 >

길이가 5000인 리스트를 만들어 버스가 지나가는 정류장의 index에 1추가해서 몇 개의 버스 노선이 다니는지 구하기

- > index가 헷갈리니 길이를 5001로 만들기

원하는 정류장 번호의 버스 노선의 개수를 리스트에 넣어 출력


< 💻 코드 >

# 테스트 케이스 수
T = int(input())
for tc in range(1,T+1):
    # 버스 노선의 개수
    N = int(input())
    # 5001개의 버스 정류장
    arr = [0] * 5001
    # 지나가는 버스 정류장에 1 추가 (idx 주의)
    for i in range(N):
        A, B = map(int,input().split())
        for j in range(A,B+1):
            arr[j] += 1

    # 출력해야하는 P개의 정류장, 각각의 idx의 해당하는 값을 result에 넣기
    P = int(input())
    result = [0] * P
    for k in range(P):
        C = int(input())
        result[k] = arr[C]

    print(f'#{tc}',*result)


< ❗ >

리스트의 전체 항목을 출력하고 싶을 때 언팩(*)을 이용하기

print(*result) : 리스트 result의 모든 요소를 공백으로 구분하여 일렬로 나열!!

728x90
반응형

댓글