6485. 삼성시의 전기버스

딩구루르·2024년 4월 2일

One Day One Coding

목록 보기
6/13

버스 노선 수, 버스 정류장 수, 노선별 구간이 주어졌을 때, P개의 각 정류장에 대해 몇개의 버스 노선이 다니는지 출력

문제 해석


  • 입력
    • 버스 노선 수 N
    • 노선별 구간 Arr
    • 출력하고자 하는 정류장 수 P
    • 출력하고자 하는 정류장 번호 p
  • 출력 : 각 정류장 별 지나는 노선 수 *result
  • 요구조건
    • 1≤전체 정류장 수≤5000
    • 1≤탐색하려는 노선 수, 정류장 수(N, P)≤ 500
  1. 문제 풀이 절차

    • 아이디어
      1. 전체 정류장 리스트 생성 Busstop
      2. 노선 하나하나마다 지나치는 정류장마다 +1
      3. 찾고자 하는 목표 정류장을 지나치는 버스 노선 수 출력
  2. 작성 코드

    for tc in range(1, int(input())+1):
        N = int(input()) # 버스 노선 수
        Arr = [list(map(int, input().split())) for _ in range(N)] # 노선 구간
        P = int(input()) # 정류장 수
        p = list(int(input()) for _ in range(P))
        Busstop = [0]*5001 # 전체 노선수+1
        result = [] # 타겟 정류장을 지나치는 노선 수를 담을 리스트
            
        for n in Arr:
            s, e = n
            for i in range(s,e+1): # 구간별 지나치는 정류장 리스트에 +1
                Busstop[i] += 1
        
        for pp in p: # 입력된 정류장을 지나치는 버스노선 수만 따로 result 리스트에 입력
            result.append(Busstop[pp])
        
        print(f'#{tc}', *result)
        # print(f'#{tc}', end=' ') # 이렇게 출력해도 pass.
        # for _ in range(P-1):
        #     print(Busstop[p[_]], end=' ')
        # print(Busstop[p[-1]])
  3. 후기

    • 분명 출력은 되긴 하는데, 자꾸 Fail이 떠서 한참을 고민했다.
      			    # print(f'#{tc}', end=' ') # 이렇게 출력해도 pass.
          # for _ in range(P):
          #     print(Busstop[p[_]], end=' ')
      			```
      이렇게 출력하면, 맨 마지막 출력이 공백이라서 그렇다..!
  4. 피드백

  • 없음

0개의 댓글