코딩은 하는 것 같은데, 아직 비효율적인 코딩이 나오는 것 같다.
숫자가 커질수록 연산과정이 많아져서 '이거 루프 도는 건가?'라고 생각할때 즈음 결과값이 나오는 것을 보았다.
그렇다면 어떻게 개선해야하는 것인가?
- 알고리즘을 생각하고 개선 포인트를 찾자
- for문이 3번 들어가기 때문에 for문 번수 * for문 번수 * for문 번수 이기 때문에 for문을 1개만 줄여도 '마지막 for문 번수'만큼을 안 곱해도 된다.
[피타고라스 삼조 코딩 - 비효율적]
for a in range(1, 400):
a2 = a * a
for b in range(1, 400):
b2 = b * b
for c in range(1, 400):
c2 = c * c
if a2 + b2 == c2:
if a + b+ c == 400:
#print(a, b, c)
print(a*b*c)
[피타고라스 삼조 코딩 - 효율적으로 개선]
- for문을 1개 없애서 결과값 속도가 훨씬 빨라졌다.
'c = 400 - a - b'와 같이 표현할 수 있다는 것을 배웠다.
for a in range(1, 400):
for b in range(1, 400):
c = 400 - a - b
if a*a + b*b == c*c:
if a + b + c == 400 and a < b < c:
print(a, b, c)
print(a*b*c)
** 이 문제는 a + b + c 가 400이면서 피타고라스 삼조를 만족시키는 샘플 문제에 대한 코딩이다.
'IT Studio > 개발' 카테고리의 다른 글
[파이썬] 인스타 좋아요 봇 다시 만들기 #2 (0) | 2021.12.15 |
---|---|
[파이썬] 인스타 좋아요 봇 다시 만들기 (0) | 2021.12.14 |
[파이썬] 드디어 인스타에 차단되지 않고 200번 이상 좋아요 작업 완료 (4) | 2021.07.25 |
[파이썬] 인스타좋아요봇 스케쥴링 대수정 작업진행 (0) | 2021.07.21 |
[파이썬] 인스타 좋아요봇을 최대한 사람같게 만들기 (random 라이브러리 최대한, 적극적 활용) (2) | 2021.07.20 |