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
													
											
												
												- Flutter
 - 동적프로그래밍
 - 회전하는큐
 - 재귀함수
 - dart
 - 백준
 - 삼성
 - 1781
 - Crossfit
 - C++
 - 그리디
 - 크로스핏
 - 4811
 - 26008
 - Python
 - 14863
 - DP
 - 스택
 - 재귀
 - BOJ
 - spring boot
 - 브루트포스
 - sw expert academy
 - 15353
 - 1로만들기2
 - 15662
 - 해시해킹
 - D1
 - BOJ14889
 - 서울에서경산까지
 
													Archives
													
											
												
												- Today
 
- Total
 
곧죽어도 콛잉
[프로그래머스 / Python] 의상 본문
https://school.programmers.co.kr/learn/courses/30/lessons/42578
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
이거는 수학적 지식이 필요하다.
인풋아웃풋 예시를 읽어보면,
[["yellow_hat", "headgear"], ["blue_sunglasses", "eyewear"], ["green_turban", "headgear"]]
이럴때, headgear의 경우 2가지, eyewear 1가지 해서 총 2*1 가지의 경우의 수가 나온다.
그런데 꼭 2가지 다 쓸필요는 없으니, headgear를 안쓰는경우를 추가해서 headgear 3가지, eyewear를 안쓰는 경우를 추가해서 eyewear 2가지, 총 3*2 가지의 경우의 수가 나온다.
이렇게 계산한 경우 headgear, eyewear 모두 안쓰는 경우의 수도 포함되므로 1가지를 빼줘서 총 5가지라고 할 수 있다.
def solution(clothes):
    answer = 1
    dic = {}
    for i in clothes:
        if dic.get(i[1]) :
            dic[i[1]].append(i[0])
        else :
            dic[i[1]] = [i[0]]
            
    
    for k in dic:
        answer *= (len(dic[k])+1)
    return answer-1
다른 코드를 보면 reduce 함수와 Counter로 위 과정을 간략하게 표현할수도 있다
def solution(clothes):
    from collections import Counter
    from functools import reduce
    cnt = Counter([kind for name, kind in clothes])
    answer = reduce(lambda x, y: x*(y+1), cnt.values(), 1) - 1
    return answer'Coding Test > Python' 카테고리의 다른 글
| [프로그래머스 / Python] 프로세스 (1) | 2024.02.27 | 
|---|---|
| [BOJ 1158 / Python] 요세푸스 문제 (0) | 2024.02.27 | 
| [BOJ 26008 / Python] 해시해킹 (0) | 2024.02.26 | 
| [프로그래머스 / Python] 나누어 떨어지는 숫자 배열 (0) | 2024.02.21 | 
| [BOJ 10818 / Python] 최소, 최대 (0) | 2024.02.21 | 
			  Comments