zip()
한 번에 두개 이상의 인자에 접근하면서 for 문을 돌고 싶을 때 사용
문제1)
길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요.
이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 길이)
a = [1, 2, 3, 4]
b = [-3, -1, 0, 2]
result -> 3
내가 짠 코드
def solution(a, b):
answer = 0
for i in range(len(a)):
answer += a[i]*b[i]
return answer
zip 함수 활용
def solution(a, b):
answer = 0
for i, j in zip(a,b):
answer += i*j
return answer
병렬로 한꺼번에 데이터를 처리할 때 편한 거 같다.
문제2)
어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요.
absolutes = [4, 7, 12]
signs = [true, false, true]
result = 0
내가 짠 코드
def solution(absolutes, signs):
signs = list(map(sign,signs))
answer = 0
for i,j in zip(absolutes,signs):
answer += i*j
return answer
한줄 코드
def solution(absolutes, signs):
return sum(absolutes if sign else -absolutes for absolutes, sign in zip(absolutes, signs))
sum(iterable, start)
iterable: iterable하고 numeric한 value를 가져야함
start: 처음으로 또 더해줄 숫자
return 값 -> literable합 + start값
'코딩테스트 with Python' 카테고리의 다른 글
다중 집합 (0) | 2022.01.21 |
---|---|
[파이썬] 빈 리스트 확인 하는법 (0) | 2022.01.06 |
[파이썬] itertools ,순열, 조합 등 (0) | 2022.01.01 |
[파이썬] Counter 객체 (0) | 2021.12.28 |
[파이썬] 문자열 method replace() (0) | 2021.12.28 |