Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- vite
- 김영한
- 운영체제
- B tree 데이터삽입
- BreadcrumbsComputer-Networking_A-Top-Down-Approach
- 반효경
- Extendable hashing
- 인터럽트
- 시그널 핸들러
- SQL
- recoverability
- 커널 동기화
- 백엔드
- 데이터베이스
- 쉬운코드
- 트랜잭션
- 코딩테스트 [ ALL IN ONE ]
- CPU 스케줄링
- SDK
- concurrency control
- 갤럭시 S24
- 시스템프로그래밍
- 네트워크
- 개발남노씨
- 코딩애플
- 운영체제와 정보기술의 원리
- 온디바이스AI
- Git
- 쉬운 코드
- 프로세스 주소 공간
Archives
- Today
- Total
티끌모아 태산
[백 준/구현] 9375: 패션왕 신해빈 본문
728x90
https://www.acmicpc.net/problem/9375
9375번: 패션왕 신해빈
첫 번째 테스트 케이스는 headgear에 해당하는 의상이 hat, turban이며 eyewear에 해당하는 의상이 sunglasses이므로 (hat), (turban), (sunglasses), (hat,sunglasses), (turban,sunglasses)로 총 5가지 이다.
www.acmicpc.net
핵심 아이디어
- dictionary
- Counter class 활용(파이썬)
같은 종류의 의상은 하나씩만 착용할 수 있으며, 알몸이 아니어야 하므로 꼭 1종류 이상의 의상은 착용해야 한다.
예를 들어, 3종류의 의상이 있으면 1종류만 착용해도 되며, 2종류를 착용해도 되고, 3종류를 착용해도 되지만
0종류를 착용하는건 안된다. 그렇다면 다음과 같은 식을 세울 수 있습니다.
- (a종류수 + 1) * (b종류수 + 1) * (c종류수 + 1)... - 1
여기서 종류수에 +1을 해준 이유는 그 종류의 의상을 착용해도 되고 안해도 되기 때문이고 마지막에 -1을 해준 이유는 모든 의상을 착용하지 않은 경우를 제외시켜줘야 하기 때문입니다.
풀이
아래의 풀이는 파이썬의 Counter모듈을 이용하여 딕셔너리를 직접 제작하지 않아도 자동으로 개수를 세주는 기능을 이용하였습니다.
from collections import Counter
import sys
input = sys.stdin.readline
t = int(input())
for _ in range(t):
n = int(input())
wear = []
for i in range(n):
a, b = input().split()
wear.append(b)
wear_Counter = Counter(wear)
#print(wear_Counter)
count = 1 # 각 종류마다 항목의 개수
for j in wear_Counter:
count *= wear_Counter[j] + 1
print(count - 1)
아래는 파이썬의 딕셔너리를 제작해서 풀이하였습니다.
import sys
input = sys.stdin.readline
t = int(input())
for _ in range(t):
n = int(input())
wear_dic = {}
for i in range(n):
wear = list(input().split())
if wear[1] in wear_dic:
wear_dic[wear[1]].append(wear[0])
else:
wear_dic[wear[1]] = [wear[0]]
count = 1
for k in wear_dic:
#print(k) headgear, eyewear
count *= (len(wear_dic[k]) + 1)
print(count - 1)
728x90
'백준 문제 > 문자열,누적합,구현' 카테고리의 다른 글
[백 준/구현] 1629: 곱셈 (0) | 2024.01.01 |
---|---|
[백 준/구현] 2559: 수열 (0) | 2024.01.01 |
[백 준/구현] 3986: 좋은 단어 (0) | 2023.12.27 |