백준 9375번 - 패션왕 신해빈

윤여준·2022년 5월 20일
0

백준 풀이

목록 보기
12/35
post-thumbnail

문제

문제 링크 : https://www.acmicpc.net/problem/9375

풀이

각 테스트 케이스마다 n개의 줄에 의상의 이름과 의상의 종류가 공백으로 구분되어 주어진다. 여기서 의상의 이름은 크게 중요하지 않고, 의상의 종류만 신경쓰면 된다.

우선 의상의 이름과 의상의 종류를 입력 받는다. 이후에 의상의 종류 b가 딕셔너리 dic에 key값으로 존재하는지 체크해준다. 만약에 dic에 key값으로 존재한다면 해당 key 값의 value를 +1 해준다. 만약에 dic에 key값으로 존재하지 않는다면 2로 초기화해준다. 2로 초기화 해주는 이유는 해당 의상 종류를 입는 경우와 입지 않는 경우 총 2개가 있기 때문이다.

입력을 다 받으면 변수 result를 1로 선언해준다. 이후에 dic의 value들을 result에 곱해준다. 그리고 result에서 1을 빼준 값을 출력한다. 1을 빼주는 이유는 모든 의상 종류를 입지 않는 경우는 제외시켜야 하기 때문이다.

from sys import stdin

t = int(stdin.readline())

for _ in range(t):
    n = int(stdin.readline())
    dic = {}
    for i in range(n):
        a,b = stdin.readline().rstrip().split()
        if b in dic:
            dic[b] += 1
        else:
            dic[b] = 2
    result = 1
    for i in list(dic.values()):
        result *= i
    print(result-1)
profile
Junior Backend Engineer

0개의 댓글