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
- 파이썬
- 프론트엔드
- TS
- nodejs
- NPM
- 알고리즘
- 코딩테스트
- CSS
- 백준 스택 시간초과 python
- C++
- Python
- 파이어베이스
- k for k
- HTML
- stdin vs input
- javascript
- Android
- JS
- 스택
- react
- next Link
- 최적화
- typescript
- 자바스크립트
- firebase
- kotlin
- 리액트
- 백준 스택
- 안드로이드
- 타입스크립트
Archives
- Today
- Total
sooleeandtomas
[day16] 코딩테스트 알고리즘 - lv.2 해시 (위장) python (feat.map) 본문
코딩테스트 알고리즘/해시
[day16] 코딩테스트 알고리즘 - lv.2 해시 (위장) python (feat.map)
sooleeandtomas 2022. 10. 12. 02:09
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
Hash는 이름은 어렵게 생겼지만, 참 쉽다.
key와 value로 이루어진 Dictionary이다.
{
headGear: headGear의 개수,
eyeWear:eyeWear의 개수
}
위와 같은 형태의 dictionary를 만들어주면 된다.
그리고 준비물은 아래 두가지이다.
1) 경우의 수를 구하는 법
= a의 경우의 수 * b의 경우의 수
2) "안 입은 경우" 추가하고 제외하기.
각 타입에 관해서는 안 입는 것은 추가해야 하고,
최종적으로 모든 타입을 안입었을 경우는 제외해야 한다.
참고 코드
def solution(clothes):
answer = 1
map = {}
for index, type in clothes:
map[type] = map.get(type, 1) + 1
#map에서.get(type)을 할 수 있다. 값이 없으면 1을 default로 가져올 수 있다.
#입지않는 케이스를 고려해서 1을 default값으로 지정
for type in map:
answer *= map[type]
#경우의 수를 구한다. -> a경우의 수 * b경우의 수 * c경우의 수를 하면됨
return answer -1
#아무것도 입지 않은 경우를 고려함 (문제의 조건에 "스파이는 하루에 최소 한 개의 의상은 입습니다."라고 나와있음)
solution([["yellow_hat", "headgear"], ["blue_sunglasses", "eyewear"], ["green_turban", "headgear"]])
python for문 문법
arr = [['a','a1'], ['b', 'b1'], ['c', 'c1']]
for j, k in arr:
print(j,k)
#a a1
#b b1
#c c1
python map 문법
get을 활용해서 값을 가져올 수 있다. 값이 없다면 default도 지정해줄 수 있다.
map = {'a':1, 'b':2, 'c':3}
map.get('a', 1)
# 1
map.get('b', 1)
# 2
map.get('d', 1)
# 1
Comments