ABOUT ME

Today
-
Yesterday
-
Total
-
  • 2002. 추월
    Algorithm/Baekjoon 2023. 2. 5. 18:44

    예제 입력을 간단하게 표현해야겠다고 생각하면 풀 수 있는 문제이다.

     

    처음 들어간 자동차들을 순서대로 숫자로 표현하고, 

    터널에서 나온 자동차는 들어갔을 때 몇번이었는지를 표현할 수 있으면 된다.

     

    import sys
    input = sys.stdin.readline
    
    def count_pass(after) :
        cnt = 0
        for i in range(len(after)) :
            for j in range(i+1, len(after)) :
                if after[i] > after[j] :
                    cnt += 1
                    break
        return cnt
    
    num = int(input())
    before = {}
    after = []
    
    for i in range(num) :
        before[input().rstrip()] = i
    
    for i in range(num) :
        after.append(before[input().rstrip()])
    
    print(count_pass(after))

    터널에 들어가는 차의 번호를 key로, 그 순서를 value로 하여 딕셔너리를 만들어준다.

    이후, 나오는 차가 몇번째 순서로 들어갔던 차였는지를 dictionary key를 통해 찾아 리스트로 만들어준다.

    추월했을 가능성으로 여겨지는 차는, 들어갔던 순서가 더 빨랐던 차를 뒤에 두고 있는 차가 되기 때문에

    해당 리스트에서 이중 for문을 사용하여 코드를 작성해주면 된다. 

    'Algorithm > Baekjoon' 카테고리의 다른 글

    9375. 패션왕 신해빈  (0) 2023.02.06
    19583. 싸이버개강총회  (0) 2023.02.05
    1946. 신입사원  (0) 2023.02.05
    12840. 창용이의 시계  (0) 2023.02.05
    10804. 카드 역배치  (0) 2023.02.05

    댓글

Designed by nanometre380.