def solution(name, yearning, photo):
answer = []
pic_score = dict(zip(name, yearning))
for list in photo: # ["may", "kein", "kain", "radi"]
photo_score = 0 # 점수 초기화
for pic in list: # "may"
if pic in pic_score:
photo_score += pic_score[pic]
answer.append(photo_score)
return answer
이 문제를 풀때 자꾸 틀렸다고 나와서 당황했었다. 흐름을 봤을땐 뭐가 틀렸나했는데
틀린 코드:
def solution(name, yearning, photo):
answer = []
photo_score = 0
pic_score = dict(zip(name, yearning))
for list in photo: # ["may", "kein", "kain", "radi"]
# photo_score = 0
for pic in list: #"may"
if pic in pic_score:
photo_score += pic_score[pic]
answer.append(photo_score)
return answer
photo_score를 각 사진마다 초기화하지 않아서 값이 점점 커지는 문제가 생겼다. 한참을 보다가 결국 디버깅으로 해결하였다.
다른 사람들은 몇줄로 바로 풀던데 나도 공부를 위해 일단 여기에 넣어둬야겠다.
pic_score = dict(zip(name, yearning))
answer = [sum(pic_score[pic] for pic in pic_list if pic in pic_score) for pic_list in photo]
list comprehension을 이렇게도 이용할 수 있다는 것을 배웠다
names = ["Alice", "Bob", "Charlie"]
scores = [90, 85, 95]
zipped_data = zip(names, scores)
print(list(zipped_data))
# 출력 결과
[('Alice', 90), ('Bob', 85), ('Charlie', 95)]
names = ["Alice", "Bob", "Charlie"]
ages = [25, 30, 22]
name_age_dict = dict(zip(names, ages))
print(name_age_dict)
# 출력 결과
{'Alice': 25, 'Bob': 30, 'Charlie': 22}
어이없는 실수로 문제에 꽤 오랜 시간을 할애했느데 가치가 있는 실수였다고 생각한다. 그리고 이 문제를 통해 간만에 내장함수를 공부하고 정리할 수 있었다. 이렇게 공부하고 정리하여 완전히 나의 것으로 만들기 위해 블로깅 이후에도 한 번씩 읽는게 좋겠다! 내 블로그가 다른 사람들에게도 도움이 되었으면 좋겠다!