🔴 내가 만난 오류들..
'list' object cannot be interpreted as an integer
=> for문 돌릴 때 len(targets) 로 설정해야 하는데 그냥 targets로 넣음 ㅋ
min() arg is an empty sequence
=> 각 key에서 해당 문자를 입력할 수 있는 최소값을 배열 a에 추가하였으나, 모든 key에서 해당 문자를 입력할 수 없는 경우 a는 빈 배열이 됨
=> 따라서 빈 배열인 경우에는 min 함수를 처리할 수 없게 되므로, 위의 오류가 뜬다
=> 먼저 빈 배열인 경우 -1 을 반환하는 처리를 먼저 해준 뒤, 빈 배열이 아닐 경우 min 함수를 계산하는 식으로 해야함
'int' object is not iterable
정말.. 어려운 오류였다..
=> 배열 a에 저장되는 요소는 숫자임, 즉 자료형이 integer
=> 그러나 숫자 int 그 자체는 반복이 불가능함
=> 리스트 함수의 원형은 list([iterable])
=> 그러나 나는 a 를 빈 리스트로 선언
=> a에 정수 한 개만 저장된 경우 a를 정수 자체로 받아들이기 때문에 반복 불가능하다고 판단하는 듯
=> 숫자 7 자체를 len 함수 적용시키지 못하는 것과 같음!
그러나 아직도 이해는 잘 안간다.. a를 '리스트'로 선언했는데 정수 요소가 추가될지언정 len이 적용될 수 있는게 아닌지..? 아직도 헷갈림 ㅠㅠ
=> 어쨌든 len(a) 를 통해 a의 요소가 2개 이상일 경우에만 min 함수를 적용하여 구하려고 했던 건데, 이 부분을 그냥 a가 비었는가 안 비었는가 if-else문으로 바꿔서 오류 해결함
def solution(keymap, targets):
answer = []
a = []
sum = 0
for i in range(len(targets)):
for j in targets[i]:
for km in keymap:
if j in km:
a.append(km.find(j))
if not a: sum = -1; break;
else: sum += min(a)+1
a = []
answer.append(sum)
sum = 0
return answer
오류들이 생길때마다 그래도 배우는 점이 생기는 것 같다ㅎ
가끔 읭? 스럽고 이건 왜? 싶기도 하지만... 일단.. 납득하는중
얼른 Lv.1 정복하고싶다! 으쟈쟈