인프런 커뮤니티 질문&답변

Uu님의 프로필 이미지

작성한 질문수

2주만에 통과하는 알고리즘 코딩테스트 (2024년)

완전탐색 (For반복문)

완전탐색(For 반복문) 6분 질문드립니다.

해결된 질문

24.06.15 11:18 작성

·

204

·

수정됨

1

100만 이하의 약수가 존재하는지 확인할 때 반복문을 왜 101만까지 돌리는 건 가요? 저는 입력 받은 수까지 확인을 했었거든요... 이유가 궁금합니다!

백만보다 큰지 안 큰지 확인하기 위함인 건 알겠는데 수학적으로 이해가 좀 안 가서 질문을 드립니다.

  • 추가적으로 알고리즘을 풀다보면 수학적인 지식이 좀 많이 부족하다고 느끼는데 어떻게 채우는 게 좋을지도 궁금합니다.. 6개월 정도 회사 다니면서 코테에만 집중해서 이직하는 게 현재 목표입니다.

     

제가 작성한 답안입니다.

답 도출까지는 못했습니다.

답변 2

0

코딩 센세님의 프로필 이미지
코딩 센세
지식공유자

2024. 06. 18. 21:26

for number in range(3):
    print(number)

파이썬은 이 코드에 대한 결과로 0 , 1 , 2 이렇게 3개의 숫자가 프린트 됩니다!

 

100만 1까지 돌리는게 아니라 100만까지 딱 돌리기 위해서는 100만 1을 range안의 값으로 넣어야 해서 그렇습니다 ! 🙂

 

수학적 지식은 정수론 강의 이외에서는 크게 필요하지 않으니, 혹시라도 정수론이 힘드시면 바로 다음 강의로 먼저 넘어가시는걸 추천드립니다!

 

그래도 어려운 부분이 자꾸 생기면 또 여기에 질문 남겨주세요 🙂 !! 감사합니다!

0

인프런 AI 인턴님의 프로필 이미지

2024. 06. 16. 11:21

안녕하세요, 인프런 AI 인턴입니다.

Uu님, 질문하신 완전탐색(For 반복문)과 관련하여, 100만 이하의 약수가 존재하는지 확인하기 위해 101만까지 반복문을 돌리는 이유를 설명드리겠습니다.

이유는 간단합니다. 예를 들어, 어떤 수 X가 100만을 약수로 가진다면, 그 수는 최소 X * 100만 이상이어야 합니다. 그렇기 때문에 약수를 확인하는 범위를 정할 때는 입력 값의 범위를 넘어서는 것이 아니라, 해당 범위 내에서 확인할 수 있는 최대 약수의 범위를 설정하는 것입니다. 또한, 일반적으로 약수를 구할 때 해당 수의 제곱근까지만 확인하면 되지만, 여러 약수 중에 100만이라는 수가 포함되었는지를 확인하려면 101만까지 확인하는 것이 필요합니다.

그리고 수학적 지식을 향상시키기 위해서는, 알고리즘 문제를 풀면서 수학적 개념이 필요할 때 해당 개념을 복습하거나 새로 학습하는 방법을 추천드립니다. 알고리즘 문제 해결을 위해서는 다양한 수학적 개념이 필요할 수 있기 때문에, 문제를 풀면서 접하게 되는 개념들을 직접 찾아보고 이해하는 과정을 통해 수학적 지식을 점차 쌓아가는 것이 좋습니다.

또한, 온라인 강의나 도서를 통해 알고리즘과 자료구조의 기본 개념을 익히면서 수학적 배경 지식을 함께 학습하는 것도 도움이 됩니다. 특히, 본인이 부족하다고 느끼는 수학 영역(예: 조합론, 확률론 등)에 대한 학습을 추가로 진행하시면 알고리즘 문제를 해결하는데 더욱 도움이 될 것입니다.

6개월이라는 기간 동안 코딩 테스트 준비에만 집중하여 이직을 목표로 하는 것이라면, 매일 꾸준히 알고리즘 문제를 풀어보는 습관을 기르시고, 여러 알고리즘 대회에 참여해보는 것도 좋은 경험이 될 것입니다. 이런 과정을 통해 실전감각을 익히면서 동시에 약점을 파악하고 보완해 나가세요.

Uu님의 프로필 이미지

작성한 질문수

질문하기