For Programmer
백준 6485번 파이썬 문제풀이(삼성시의 버스 노선) 본문
728x90
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWczm7QaACgDFAWn
이 문제는 처음에 약간 고민했다. P를 입력받고 버스 정류장의 정보를 P만큼 입력받는데 중복된다는 말이 없어서 고민했으나 역시나 틀리자말자 중복을 허용하니 맞았다. 처음에는 딕셔너리로 풀 생각을 못했는데 중복을 허용해야하기 때문에 딕셔너리로 풀었더니 쉽게 풀렸다. 딕셔너리 키에는 해당 정류소의 정보를 Value에는 지나가는 횟수를 저장하는 식으로 하였다.
import sys
# sys.stdin = open('input.txt', 'r')
T = int(input())
for order in range(1, T + 1):
N = int(input()) # 노선의 수
nosun = [] # 노선의 정보를 담을 리스트
for i in range(N):
nosun.append(list(map(int, input().split()))) # 노선의 정보 입력
P = int(input()) # 정류장의 개수
C = [] # 정류장의 번호
info = {} # 딕셔너리에 정류장번호 : 지나가는 횟수 형식으로 저장
for i in range(P):
station = int(input())
C.append(station)
info[station] = 0
for i in nosun: # 노선의 정보를 돈다.
for j in range(i[0], i[1] + 1): # 노선의 첫번째부터 끝 정류장까지 돈다.
if j in info: # 만약 입력받은 정류장이 존재하만다면
info[j] += 1 # 지난가는 횟수를 1회 증가
print(f'#{order}', end=" ")
for i in C: # 입력받은 정류장을 순회하며 저장된 횟수 출력
print(info[i], end=" ")
print()
728x90
'코팅테스트 > 백준 문제 모음' 카테고리의 다른 글
백준 22988번 파이썬 문제풀이(재활용 캠페인) (0) | 2022.02.14 |
---|---|
백준 3273번 파이썬 문제풀이(두 수의 합) (0) | 2022.02.14 |
백준 2003번 파이썬 문제풀이(수들의 합 2) (0) | 2022.02.13 |
SWEA 4615 파이썬 문제풀이(재미있는 오셀로 게임) (0) | 2022.02.12 |
SWEA 1860 파이썬 문제풀이(진기의 최고급 붕어빵) (0) | 2022.02.12 |
Comments