level1_음양 더하기
2024. 1. 30. 10:17ㆍ파이썬_알고리즘(코딩테스트)/level1


내가 제출한 코드
def solution(absolutes, signs):
answer = 0
for i in range(len(absolutes)):
if signs[i]: # true일 경우
answer += absolutes[i]
else: # false일 경우
answer -= absolutes[i]
return answer
다른 사람이 제출한 코드1
def solution(absolutes, signs):
answer=0
for absolute,sign in zip(absolutes,signs):
if sign:
answer+=absolute
else:
answer-=absolute
return answer
다른 사람이 제출한 코드2
def solution(absolutes, signs): return sum(absolutes[i] * (1 if signs[i] else -1) for i in range(len(signs)))
순서가 헷갈려서 정리를 했다.
1. 리스트 컴프리헨션: for i in range(len(signs))
2. 조건부 표현식: (1 if signs[i] else -1)
3. 곱셈: absolutes[i] * (1 if signs[i] else -1)
4. 합계 계산: sum()
5. 결과 반환
다른분들 제출하신 코드에서 많이 보인게 zip이었다.
zip에 대해서 간단하게 정리하고 넘어갈려고 한다.
ZIP
zip() 함수는 여러 개의 순회 가능한(iterable) 객체를 인자로 받고, 각 객체가 담고 있는 원소를 튜플의 형태로 차례로 접근할 수 있는 반복자(iterator)를 반환합니다
number = [1,2,3]
letters = ["A","B","C"]
for pair in zip(numbers, letters):
print(pair)
--> 결과값
(1,'A')
(2,'B')
(3,'C')
'파이썬_알고리즘(코딩테스트) > level1' 카테고리의 다른 글
| level1_내적 (0) | 2024.01.30 |
|---|---|
| level1_하샤드 수 (1) | 2024.01.30 |
| level1_없는 숫자 더하기 (1) | 2024.01.29 |
| level1_제일 작은 수 제거하기 (0) | 2024.01.24 |
| level1_두 정수 사이의 합 (0) | 2024.01.24 |