파이썬
코드 비교
1️⃣ 컴프리헨션 사용
def correct(student_answer, answers):
return sum(1 for i, ans in enumerate(answers) if ans == student_answer[i % len(student_answer)])
- sum(1 for ...)에서 1은 각 조건이 True일 때 더할 값이다.
- sum 함수는 조건에 맞는 모든 1 값을 합산하므로, 결과적으로 += 1과 같은 효과를 낸다.
2️⃣ 컴프리헤션 사용 X
def correct(student_answer, answers):
count = 0
for i, ans in enumerate(answers):
if ans == student_answer[i % len(student_answer)]:
count += 1
return count
약수 구하기
약수는 일반적으로 1부터 sqrt(i)까지만 확인하면 된다. 예를 들어, i가 36이라면 1 x 36, 2 x 18, 3 x 12, 4 x 9, 6 x 6 등의 약수를 가지며, sqrt(36) 이후로는 중복 계산이 된다. 이렇게 하면 약수의 개수 계산이 훨씬 빨라져 시간 효율성을 개선할 수 있다.
- 6의 약수는 [1, 2, 3, 4, 6, 9, 12, 18, 36] 이 있다.
- 약수 6 이후로는 다시 작은 수와 곱하면서 확인하는데 이미 앞에서 계산을 했기 때문에 중복 계산이 된다는 것이다.
- 따라서 제곱근을 통해 중복을 제거해서 시간 단축을 해야 한다.
제곱근 구하는 방법
1️⃣ 1. math.sqrt()
import math
math.sqrt(36) # 6.0
2️⃣ 2. 제곱(**)
36**0.5 # 6.0
📜 작성한 게시글
[Programmers 코딩테스트 L1. 콜라 문제] 👉 https://dev-cloud.tistory.com/383
[Programmers 코딩테스트 L1. 기사단원의 무기] 👉 https://dev-cloud.tistory.com/384
[BOJ 코딩테스트 5212. 지구 온난화] 👉 https://dev-cloud.tistory.com/385
'TIL' 카테고리의 다른 글
[TIL] 2024년 11월 09일 (0) | 2024.11.10 |
---|---|
[TIL] 2024년 11월 08일 (2) | 2024.11.09 |
[TIL] 2024년 11월 06일 (0) | 2024.11.06 |
[TIL] 2024년 10월 30일 (0) | 2024.10.30 |
[TIL] 2024년 10월 29일 (0) | 2024.10.29 |