알고리즘 설계 시, 머릿 속으로 풀어보며 단계별로 생각하고 최적화
a = {'name':'pey', 'phone':'0119993323', 'birth': '1118'}
a.get('name')
#'pey'
a.get('phone')
# 0119993323
a.get('foo', 'bar')
#'bar'
딕셔너리에서 key가 없는데 dict에서 찾으라 하면 "Key Error" 발생
- dict와 비슷하지만 value없이 key만 있다.
- mutable(list,set,dict 등등)은 값으로 가질 수 없다.
- 중복이 자동으로 제거 된다.
- 순서가 없다
a = {1,2,3}
b = {3,4,5}
c = a | b #합집합 {1,2,3,4,5}
c = a & b #교집합 {3}
c = a - b #차집합 {1,2}
b.add(8) # {3,4,5,8}
b.update([1,2]) # {1,2,3,4,5,8}
b.remove(8) # {1,2,3,4,5} 단 없으면 KeyError
b.discard(3) # {1,2,4,5} 없어도 KeyError x
ex) 체육복 문제 ( Greedy )
def solution(n, lost, reserve):
s = set(lost) & set(reserve) # 교집합
l = set(lost) - s # 차집합
r = set(reserve) - s # 차집합
for x in sorted(r) :
if x - 1 in l :
l.remove(x-1)
elif x + 1 in l :
l.remove(x+1)
return n-len(l)
# 1
return [k for k,v in dict.items() if v > 0][0]
# 2
u[i-1:i+1] = [1,1]
# 3
return len([x for x in u[1:-1] if x > 0 ])