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 | 31 |
Tags
- 코테
- VSCode
- 현대sw
- 다트
- 플러터
- DART
- 아마존 웹 서비스
- 백준
- 알고리즘
- Flutter
- baekjoon
- kotlin
- 소프티어
- 스위프트
- 파이썬
- 자바
- Python
- GDSC
- 프로그래머스
- SWIFT
- aws
- Android
- 코틀린
- softeer
- 안드로이드
- MVVM
- programers
- 개발
- 머신러닝
- java
Archives
- Today
- Total
조준장 개발자 생존기
[baekjoon] 백준 9375번(파이썬): 패션왕 신해빈 본문
문제
9375번: 패션왕 신해빈
첫 번째 테스트 케이스는 headgear에 해당하는 의상이 hat, turban이며 eyewear에 해당하는 의상이 sunglasses이므로 (hat), (turban), (sunglasses), (hat,sunglasses), (turban,sunglasses)로 총 5가지 이다.
www.acmicpc.net
알고리즘
- collections 모듈에 Counter 클래스를 사용하여 문제를 수행한다.
- 의상의 이름과 종류를 입력받아 종류를 리스트에 추가한다.
- 의상의 종류를 추가한 리스트에 Counter 함수를 통해 개수를 확인한다.
- 알몸도 옷이라고 생각하여 각 의상의 + 1 을 해준 후 각 의상의 종류를 곱해준다.
- 곱하게 되면 모든 조합이 나오고 이때, 모든 옷의 알몸을 입었을 경우의 수는 하나가 된다.
- 따라서 모든 조합에서 - 1 을 해준 값을 출력한다.
코드
import sys
from collections import Counter
t = int(sys.stdin.readline())
# 테스트 케이스만큼 반복
for _ in range(t):
n = int(sys.stdin.readline())
temp = []
# 의상의 이름과 종류를 입력받는다.
for i in range(n):
a, b = map(str, sys.stdin.readline().split())
temp.append(b) # 의상의 종류를 리스트에 추가
# 의상의 종류가 들어있는 리스트를 카운터 함수를 통해 개수를 확인한다.
res = Counter(temp)
# (의상의 개수 + 1) 을 모든 의상의 종류를 곱한 후 - 1 해준다.
num = 1
for j in res:
num *= (res[j] + 1)
print(num - 1)
github
GitHub - junjange/CodingTest: 내가 푼 코딩 테스트 문제와 해결법
내가 푼 코딩 테스트 문제와 해결법. Contribute to junjange/CodingTest development by creating an account on GitHub.
github.com
'CodingTest > Baekjoon' 카테고리의 다른 글
[baekjoon] 백준 1766번(파이썬): 문제집 (0) | 2021.10.05 |
---|---|
[baekjoon] 백준 5397번(파이썬): 키로거 (0) | 2021.10.04 |
[baekjoon] 백준 2504번(파이썬): 괄호의 값 (0) | 2021.10.02 |
[baekjoon] 백준 1620번(파이썬): 나는야 포켓몬 마스터 이다솜 (0) | 2021.10.01 |
[baekjoon] 백준 2493번(파이썬): 탑 (0) | 2021.09.30 |