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