Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Q 11. 자신을 제외한 배열의 곱 풀이 질문입니다. #6

Closed
ksundong opened this issue Jul 27, 2020 · 2 comments
Closed

Q 11. 자신을 제외한 배열의 곱 풀이 질문입니다. #6

ksundong opened this issue Jul 27, 2020 · 2 comments

Comments

@ksundong
Copy link
Contributor

오른쪽 곱셈을 할 때, range의 파라미터 중에서 0 - 1이 있는데, 왜 이렇게 작성하셨는지 궁금합니다!

-1로 작성해도 정상적으로 동작하던데, 의도를 파악하지 못해 질문남깁니다.

p = 1
for i in range(len(nums) -1, 0 - 1, -1): # 이 부분입니다.
    out[i] = out[i] * p
    p = p * nums[i]
@likejazz
Copy link
Collaborator

가독성을 높이기 위해 쓰는 기법입니다.

예를 들어 5부터 10까지 합을 구한다고 할때,

# 1)
for n in range(5, 11):
    sums += n

# 2)
for n in range(5, 10 + 1):
    sums += n

1)번처럼 만 해도 충분하지만 이 경우 11만 봐서는 10을 언뜻 떠올리기가 쉽지 않습니다. 반면 2)에서는 10 + 1로 처리하여 10까지 진행한다는 명확한 의도를 코드에 표현했습니다. 이 처럼 가독성을 높이는 기법을 책에서는 곳곳에 활용하였고, 코딩 인터뷰 시에도 이 같은 내용을 설명할 수 있다면 훨씬 더 좋은 평가를 받을 수 있겠습니다. 다만, 이런 부분을 책에 직접적으로 설명하지 않은건 제가 놓친 부분 같네요. 추후 개정판에는 설명을 보완할 수 있도록 하겠습니다.

@ksundong
Copy link
Contributor Author

@likejazz
아하 이해가 됐습니다. 가독성을 높이기 위한 기법이었군요.
감사합니다. ^^

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants