class A:
def method1(self):
newObj = func(self)
self.__dict__.update(newObj.__dict__)
하지만 권장하는 방법이 아니라고 하셨으니 사용하는데 유의해야겠다.
#key x의 값이 있으면 그 값을 반환하고 없으면 0을 반환
d[x] = d.get(x,0)
#items()를 통해 키와 벨류 모두 얻을 수 있다.
d = [k for k,v in d.items() if v > 0 ]
나는 정렬로 풀었는데 이렇게 되면 최적이 NlogN이라 해쉬로 풀어야한다.
알고리즘의 각 단계에서 그 순간에 최적이라고 생각되는 것을 선택
탐욕법으로 최적해를 찾을 수 있는 문제
현재의 선택이 마지막 해답의 최적성을 해치지 않을 때
#set 교집합
s = set(lost) & set(reserve)
#set 차집합
l = set(lost) - s
정렬에서 기준을 줘서 정렬
numbers.sort(key=lambda x : (x*4)[:4],revers=True)
조건에서 n의 제한을 읽고 조건을 만들었음.
join
''.join(arr)
에러처리
0인경우 0000 이런식으로 안되고 0으로 반환하도록
인뮤터블 - 변경불가 객체 ex) 문자열
뮤터블 - 변경가능 객체 ex) 리스트
for i, num in enumerate(number):
#i에는 인덱스 num에는 숫자
collected = collected[:k] if k > 0 else collected
틀린코드
def solution(number, k):
c = []
for i,n in enumerate(number):
#c에 n보다 작은게 없도록 제거
while c and c[-1] < n and k > 0:
c.pop()
k -= 1
if k == 0:
c.append(number[i:])
break
c.append(n)
c = c[:k] if k > 0 else c
return ''.join(c)
테스트케이스 12 통과 못했음
수정코드
def solution(number, k):
c = []
for i,n in enumerate(number):
#c에 n보다 작은게 없도록 제거
while c and c[-1] < n and k > 0:
c.pop()
k -= 1
if k == 0:
c.append(number[i:])
break
c.append(n)
c = c[:-k] if k > 0 else c
return ''.join(c)
k가 아니라 -k, 뒤에서부터 잘라내야하기 때문
for문과 같은 레벨에 else를 둬서 break없이 빠져나온 경우를 처리하는 방법
잘보고있어요.