난이도 : D3
문제번호 : 6485
※ 저의 풀이가 무조건적인 정답은 아닙니다.
다른 코드가 좀더 효율적이고 좋을 수 있습니다.
다른사람들의 풀이는 언제나 참고만 하시기 바랍니다.
문제 주소 및 출처입니다.
목차
1. 문제 설명
2. 문제 해석
3. 소스 코드
1. 문제 설명
삼성시에 있는 5,000개의 버스 정류장은 관리의 편의를 위해 1에서 5,000까지 번호가 붙어 있다. |
입력
첫 번째 줄에 테스트 케이스의 수 T가 주어진다. |
출력
각 테스트 케이스마다 ‘#x’(x는 테스트케이스 번호를 의미하며 1부터 시작한다)를 출력하고 한 칸을 띄운 후, |
예시
입력 | 출력 |
1 |
#1 1 2 2 1 1 |
2. 문제풀이
딕셔너리를 이용하면 쉽게 풀 수 있는 문제였다. A와 B를 입력받아 그사이에 있는 값은 키값으로 딕셔너리 카운팅을 한다. 출력은 적혀있는 정류장을 기준으로 출력하며 거치지 않는 정류장이 있을 수 있으므로 get 함수를 이용하여 0을 디폴트로 주어 해결하였다. |
3. 소스코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
#D3 6485 삼성시의 버스 노선
#풀이 1
T = int(input())
for t in range(1, T+1):
N = int(input())
#결과 저장용 딕셔너리
result = {}
#그냥 나오면 전부다 카운팅
for i in range(N):
a, b = map(int, input().split())
for k in range(a, b+1):
result[k] = result.get(k, 0) + 1
#정류장 개수 입력받기
P = int(input())
#정류장 번호 입력받기
C_list = []
for _ in range(P):
C_list.append(int(input()))
print('#{} '.format(t), end='')
#딕셔너리에 저장된 정류장을 출력
for C in C_list:
print(result.get(C, 0), end=' ')
print()
|
'코딩테스트 > SWExpertAcademy' 카테고리의 다른 글
적고 지우기 C++(SW Expert Academy) (0) | 2020.04.10 |
---|---|
조 만들기 C++(SW Expert Academy) (0) | 2020.04.09 |
정곤이의 단조 증가하는 수 Python(SW Expert Academy) (0) | 2020.04.07 |
세제곱근을 찾아라 Python(SW Expert Academy) (0) | 2020.04.06 |
의석이의 세로로 말해요 Python(SW Expert Academy) (0) | 2020.04.05 |
댓글