[SWEA]삼성시의 노선[PYTHON]

냐항·2021년 8월 20일
0

삼성시 어디노,, 나도 가련다

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

그리고 버스 노선은 N개가 있는데, i번째 버스 노선은 번호가 Ai이상이고,

Bi이하인 모든 정류장만을 다니는 버스 노선이다.

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

[입력]

첫 번째 줄에 테스트 케이스의 수 T가 주어진다.

각 테스트 케이스의 첫 번째 줄에는 하나의 정수 N ( 1 ≤ N ≤ 500 )이 주어진다.

다음 N개의 줄의 i번째 줄에는 두 정수 Ai, Bi ( 1 ≤ Ai ≤ Bi ≤ 5,000 )가 공백 하나로 구분되어 주어진다.

다음 줄에는 하나의 정수 P ( 1 ≤ P ≤ 500 )가 주어진다.

다음 P개의 줄의 j번째 줄에는 하나의 정수 Cj ( 1 ≤ Cj ≤ 5,000 ) 가 주어진다.

[출력]

각 테스트 케이스마다 ‘#x’(x는 테스트케이스 번호를 의미하며 1부터 시작한다)를 출력하고 한 칸을 띄운 후,

한 줄에 P개의 정수를 공백 하나로 구분하여 출력한다.

j번째 정수는 Cj번 버스 정류장을 지나는 버스 노선의 개수여야 한다.

호호,,, 풀이 문제 요돏개 나는 0개 풀었쥐 ㅎ
그나마 오~ 이렇게 하면 되겠는데? 했던 삼성시
못풀었지만 이해는 가더라~

for tc in range(1, int(input())+1):
    N = int(input())
    
    # A, B 아이들이 두 개라 어떻게 받지,,,, 했는데
    이렇게 리스트로 받아서 꺼내쓰면 됨!!
    stop_list = [list(map(int, input().split())) for _ in range(N)]
    
    
    # 이거이거!! 나는 오 stop을 P+1개 만들면 되겠군ㅋ 했지만 문제를 다시 읽어보면 정류장의 총 갯수는 5000개라네 하지만 인덱스가 0인 것도 있응께 5001개를 만들고 stop_list에 있는 아이들을 받자구.
    stop = [0] * 5001

	# 인덱스 집어 넣기~
    for i in range(N):
        for k in range(stop_list[i][0], stop_list[i][1] + 1):
            stop[k] += 1


    P = int(input())

    print('#{}'.format(tc), end = ' ')
    for i in range(P):
    	# C 5개 저 input들을 어디 받나,, 했더니 요롷게 print할 때 바로 받아서 써도 되구나!!!
        print(stop[int(input())], end = ' ')
       # 요 프린트 안붙여 주면 fail이다~~~~~~~
       # 이거 중요혀~~~~ 왜인지는 아직도 잘 모름
    print()  --> 이거 줄바꿈이랴

0개의 댓글

관련 채용 정보