알고리즘/Programmers
[CodingTest] 프로그래머스 Programmers Level1 음양 더하기 / zip
Happyoon ~
2021. 11. 16. 23:14
728x90
반응형
https://programmers.co.kr/learn/courses/30/lessons/76501?language=python3
코딩테스트 연습 - 음양 더하기
어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 re
programmers.co.kr
메소드 사용법을 익히기 위해 쉬운 문제부터..
이문제는 zip을 사용하는 문제이다.
하지만 나는 zip이 생각이 안났음 ㅋ ㅋ ㅋ
따라서 내코드
def solution(absolutes, signs):
answer = 0
for i in range(len(absolutes)):
if signs[i] == False:
answer-=absolutes[i]
else: answer+=absolutes[i]
return answer
zip을 적용해서 다시 풀어보니
def solution(absolutes, signs):
answer = 0
signs_list=[]
for item in signs:
if !item:
signs_list.append(-1)
else:
signs_list.append(1)
pairs = zip(absolutes,signs_list)
for item in pairs:
answer+=item[0]*item[1]
return answer
얾 왜 더 복잡해짐? ㅋㅋ
다른 사람 코드 1
def solution(absolutes, signs):
return sum(absolutes if sign else -absolutes for absolutes, sign in zip(absolutes, signs))
언제 이렇게 짧게 짤 수 있죠
다른 사람 코드 2
def solution(absolutes, signs):
answer=0
for absolute,sign in zip(absolutes,signs):
if sign:
answer+=absolute
else:
answer-=absolute
return answer
이거는 처음 코드랑 비슷한데 왜 zip 쓰면서 이상하게 짰을까
다른 사람 코드 3
def solution(absolutes, signs):
res = []
for idx in range(len(signs)):
if signs[idx] == True:
res.append(absolutes[idx])
else:
res.append(-absolutes[idx])
return sum(res)
print(solution([4,7,12], [True,False,True]))
프린트에 바로 이렇게 하는 것도 ,, 좋은듯 ..
나도 한줄 코딩 하고싶다
반응형