https://programmers.co.kr/learn/courses/30/lessons/12954
주어진 조건에 맞는 수열 리스트를 구하는 문제이다!
딱 보자마자 for문을 사용하여 구하면 될 것 같아서 처음에는 정석적인 반복문 코드로 작성하였다.
def soultion(x, n):
answer = []
for i in range(n):
answer.append(x + x * i)
return answer
이것도 문제를 해결하는 코드이긴 하지만 파이썬스럽지 않은? 코드인 것 같아서 더 줄여보았다.
def solution(x, n):
return [x + x * i for i in range(n)]
파이썬은 리스트를 선언할 때 내부에 반복문을 사용할 수 있기 때문에 하나의 연산을 반복적으로 실행하여 리스트를 만들 경우 다음과 같이 간단하게 표현이 가능하다 ! 😄
처음에 코드를 한 문장으로 줄여야겠다고 생각했을 때에는 반복적으로 하나의 연산을 수행하니까 lambda
를 사용하면 딱이겠다 싶어서 (진짜 멍청이 ㅎ) 작성을 했는데 아무리 해도 연산이 제대로 수행되지 않는 것이었다...
알고보니 lambda
는 변하는 값을 활용해야 하고, 그것을 반복문을 통해서 받아야 하는 경우에는 잘 맞지 않는 것이었다. (나는 for문을 통해 n까지 1씩 증가하는 값을 받아오려고 그랬기 때문에 안됐던것 !)
그리고 배열의 값을 하나씩 순회하면서 값을 활용할 경우에 더욱 요긴하게 쓰인다는 것도 이번을 통해 상기시킬 수 있었다!! 😂