작성
·
248
0
강의 듣기전에 이렇게 풀어본 코드인데요.
Counter로 미리 key,value를 채워두는 것 자체가 데이터최적화도 안되고 접근방법이 조금 엇나갔다는 건 알겠습니다. 그래서 이미 빈도수를 모두 주었기 때문에 (target-i != i)라는 조건이 추가로 생긴 것 같은데, if문에서 저런식으로 두가지 조건을 묶는 방식은 나쁜건가요? 공부를 시작하지 많이 안됐는데 뭔가 저런식으로 조건이 생기면 기분이 찝찝합니다.
from collections import Counter
def solution(nums,target):
answer = [0]*2
nH = Counter(nums);
for i in nums:
if (target-i in nH) & (target-i != i):
answer = sorted([i,target-i])
return answer
return answer
답변 1
0
안녕하세요^^
미리 Counter를 써서 모든 숫자를 해싱을 해놨기 때문에 같은 숫자가 두 번 더해지는 효과가 생기는 것 같습니다. if 조건문에 조건이 많이 들어가는 것 보다는 간결한게 좋습니다.
영상의 방법도 항상 참고하시고 더 좋은 코드를 짜는데 노력하면 아마 최적화된 코드를 구현하게 될 겁니다.