[Programmers] 위장
🎈문제
https://programmers.co.kr/learn/courses/30/lessons/42578
💬설명
- 문제 자체는 어렵지 않았다.
- 우선 옷 종류별로 dictionary에 넣어서 개수를 센다. (ex) {"face": 2, "headgear": 1 }
- 각각의 옷 종류별로 (아무것도 선택 안함, 첫번째꺼 선택, 두번째꺼 선택, ... 마지막꺼 선택) 이렇게 선택이 가능하다. 즉, face가 2개가 있다면 (아무것도 선택 안하거나, 선글라스를 선택하거나, 마스크를 선택하거나) 이렇게 3가지의 선택지가 있다.
- 옷 종류별로 n + 1가지의 선택지가 있으므로 이것들을 전부 곱해준다.
- 중요한건 아무것도 입지 않는 경우는 없으므로 1을 빼줘야 한다는 것.
- 효율성 점수도 없고(그만큼 숫자가 작음) 조금만 생각하면 금방풀 수 있는 문제였다.
👩💻코드
def solution(clothes):
answer = 1
# 종류별로 dictionary에 개수 세기
dic = {}
for clothe in clothes:
if clothe[1] in dic:
dic[clothe[1]] += 1
else:
dic[clothe[1]] = 1
# (종류별 개수 + 1) 곱하기 - 1
for clothe in dic:
answer *= (dic[clothe] + 1)
return answer - 1
728x90
반응형
'CS > Algorithm 문제' 카테고리의 다른 글
[Programmers] 기능개발 (0) | 2021.10.07 |
---|---|
[Programmers] 베스트앨범 (0) | 2021.10.07 |
[Programmers] 전화번호 목록 (0) | 2021.10.07 |
[Programmers] 완주하지 못한 선수 (0) | 2021.10.07 |
[BaekJoon] 백준 17471번 게리맨더링 (0) | 2021.10.07 |