티스토리 뷰
https://programmers.co.kr/learn/courses/30/lessons/42578
프로그래머스 위장 문제.
문제 해설을 처음에 잘못이해해서 좀 헤맸었다.
결국엔 스파이는 한가지 이상의 옷을 입으며, 옷을 입을 수 있는 경우의 수가 몇가지인지 출력하면 되는 문제.
Counter 함수를 이용해 풀수 있었다. Counter의 기능을 활용하면 종류의 개수를 쉽게 구할 수 있고, 문제의 취지인 Hash함수 형태로서 효율적으로 구할 수 있었다.
count_clothes = Counter(i[1] for i in s)
위 코드를 보면 count_clothes는 s리스트의 1번째 인덱스만 Counter한 것을 구해준 것이다.
문제의 예시는 [의상이름. 의상종류] 로 되어있어서 0번째 인덱스는 이름, 1번째 인덱스는 종류이고, 종류의 개수만 구해서 이렇게 출력된다.
이렇게 dict형식으로 key : value 형태로 저장됐다. 문제를 풀기 위해선 종류가 몇가지 있는지 value값만 필요하다.
count_clothes.values() 를 하면 아래와 같이 표현된다
count_clothes.values() 를 하면 아래와 같이 표현된다
https://m.blog.naver.com/PostView.nhn?blogId=nowedu1&logNo=220555048785&proxyReferer=https:%2F%2F
www.google.com%2F
경우의 수 공식은 위의 블로그에서 찾을 수 있었다.
스파이는 옷을 입지 않는 경우도 있으므로 (의상종류+1) * (의상종류+1) * (의상종류+1) 이 경우의 수가 되는데,
아무것도 입지 않는 경우의 수를 빼서 최종적으로 (의상종류+1) * (의상종류+1) * (의상종류+1) - 1 이된다.
for j in count_clothes.values():
answer *= (j + 1) # 의상 종류의 갯수 +1씩해서 곱해줌
answer -= 1 # 아무것도 입지 않은 경우의수 1을 뺌
그렇게 정답이 완성되었다.
'Python > python 코딩테스트' 카테고리의 다른 글
[Python]프로그래머스 코딩테스트 기능개발 (0) | 2020.09.25 |
---|---|
[Python]프로그래머스 코딩테스트연습 주식가격 (0) | 2020.09.25 |
[Python]프로그래머스 코딩테스트연습 베스트앨범 (0) | 2020.09.24 |
[Python]프로그래머스 코딩테스트연습 디스크 컨트롤러 (0) | 2020.09.22 |
[Python]프로그래머스 코딩테스트연습 더 맵게 (0) | 2020.09.21 |
- Total
- Today
- Yesterday
- 입문
- heap max
- 데이터 사이언스 프로그래밍 파이썬
- javascript 객체배열
- 코딩테스트
- windows10 chmod 400
- Python
- MySQL 문제
- 파이썬
- 배열 특정객체 제거
- vue bootstrap scss
- Java수료
- 윈도우 chmod
- Vue.js 프로젝트 투입 일주일 전
- vue.js 특징
- JavaScript
- 배열 특정요소 제거
- 프로그래머스 코딩테스트
- dict 연속성
- chmod 400
- 부트스트랩 커스텀
- Vue.js강의
- vue.js 개념
- Vue.js
- 프로그래머스
- bootstrap5
- 다리위를지나는트럭
- Vue.js 입문
- 코드잇 강의
- Vue.js 책
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |