요 문제는 특이한 유형이라고 볼 수 있다.
문제 자체의 난이도는 역시나 Lv.1답게 매우 쉬운데 구현을 요구하는 방식에서 독특한 유형을 가진다.
핵심은 이것이다. 주어진 숫자의 총합을 반환하는것. 단, 주어진 숫자의 형식이 일반적이지 않다.
바로, 각 숫자의 절댓값과 부호를 따로 준다는 점이다. 이는 병렬적으로 바라보면 바로 해결할 수 있는데 파이썬에서는 동일한 길이를 가지는 이터러블 객체에서 위와같은 병렬적 처리를 할 때 아주 유용한 zip()이 존재한다. zip()에 대한 내용은 따로 다루지 않을 것이지만 문제를 풀 당시 공부했던 링크를 첨부하겠다. 참고바란다.
def solution(absolutes, signs):
answer = []
for number, sign in zip(absolutes, signs):
if sign == True:
answer.append(number * 1)
else:
answer.append(number * -1)
return sum(answer)
파이썬 zip( ) 관련 학습 링크 ▼
'알고리즘 & 코딩테스트 > 코딩테스트' 카테고리의 다른 글
Programmers Lv.1 "제일 작은 수 제거하기" (0) | 2023.05.14 |
---|---|
Programmers Lv.1 "없는 숫자 더하기" (0) | 2023.05.14 |
Programmers Lv.1 "나누어 떨어지는 숫자 배열" (0) | 2023.05.10 |
Programmers Lv.1 "서울에서 김서방 찾기" (0) | 2023.05.10 |
Programmers Lv.1 "두 정수 사이의 합" (0) | 2023.05.10 |