https://programmers.co.kr/learn/courses/30/lessons/76501
반복문과 기본 연산식만으로 간단하게 풀 수 있던 문제였다.
1. 첫번째 답안
def solution(absolutes, signs):
result=0
for i in range(len(absolutes)):
if signs[i]==True: result+= absolutes[i]
else: result -= absolutes[i]
return result
2. 두번째 답안
다른 유저들의 풀이를 보고 sum함수와 generator expression을 함께 쓸 수 있다는 것을 처음 알았다.
sum함수의 파라미터로 generator expression을 넣고 해당 generator가 True를 반환하면 그 요소를 sum의 요소로 받아 덧셈 연산을 해주고 False를 반환하면 덧셈연 산을 해주지 않는 방식이다.
해당 방법으로 이 문제를 다시 풀어보았다.
def solution(absolutes, signs):
return sum(absolutes[i] if signs[i] else -absolutes[i] for i in range(len(absolutes)))
* 만일 i번째 signs가 True면 absolutes의 i번째 요소를 더해주고 False이면 absolutes의 i번째 요소를 빼주고 모든 연산이 끝나면 결과를 반환해준다.
'python > 알고리즘 문제풀이' 카테고리의 다른 글
[프로그래머스 | 파이썬3] 내적_sum함수 활용 (1) | 2021.05.18 |
---|---|
[프로그래머스 | 파이썬3] 소수 만들기_combinations활용 (2) | 2021.05.17 |
[프로그래머스 | 파이썬3] 모의고사_enumerate, zip 활용 (1) | 2021.05.15 |
[프로그래머스 | 파이썬3] 체육복_ set, pop 사용 (1) | 2021.05.13 |
[프로그래머스 | python3] K번째 수_ sort() 사용 (2) | 2021.05.12 |