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

rosy님의 프로필 이미지
rosy

작성한 질문수

입문자를 위한 코딩테스트 핵심(이론과 문제풀이) [Python]

[문제 1번] 최솟값의 위치

최솟값의 위치

작성

·

181

0

안녕하세요! 코딩테스트를 처음 준비하는거라 잘 모르는데..

최솟값의 위치에서 그냥 min함수 이용하면 안되는 건가요...?

nums = [7,10,5,3,2,15,19]

min_value = min(nums)
print(nums.index(min(nums)))

이런 식으로 하면 금방 나올텐데

원래 코딩 테스트는 순차탐색을해서 풀어야하는건가요? 잘 몰라서 여쭤봅니다!

답변 2

1

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

min 함수가 작동하면 배열을 한 번 탐색합니다. 즉 O(n)의 시간복잡도입니다. 그리고 다시 nums.index 함수가 작동하면서 다시 배열을 탐색하므로 O(n)시간을 또 잡아먹습니다. 영상처럼 반복문 하나로 배열을 한 번만 탐색하는게 더 효율적입니다. 그리고 위에 코드에서 min함수를 굳이 두 번 호출할 필요는 없어보입니다.

nums = [7,10,5,3,2,15,19]
print(nums.index(min(nums)))

위와 같이 해도 됩니다.

그리고 아래 인프런 AI가 답변한 내용도 참조하시면 좋겠습니다.

rosy님의 프로필 이미지
rosy
질문자

답변 감사합니다!!

1

안녕하세요, 인프런 AI 인턴입니다.
rosy님, 코딩테스트 준비에 있어서 함수의 사용 여부는 주로 코딩테스트의 지침에 따라 달라집니다. 일부 시험에서는 내장 함수의 사용을 허용하지만, 기업이나 시험이 요구하는 알고리즘 이해도를 검증하기 위해서 직접 구현하도록 요구할 수도 있습니다.

min 함수를 이용하여 최솟값과 그 위치를 찾는 것은 파이썬에서 아주 일반적이고 효율적인 방법입니다. 그러나 코딩테스트에서는 때로는 더 기본적인 방법으로 문제를 풀어보는 것이 요구될 수 있습니다. 예를 들어, 최솟값을 찾는 알고리즘을 직접 구현하면서 for 루프와 조건문을 사용하는 방식으로 순차 탐색을 할 수 있습니다.

코딩테스트에서는 다양한 상황을 대비하여 min 함수를 사용하는 방법과 직접 탐색하는 방법 모두에 익숙해지는 것이 좋습니다. 또한, 코딩 테스트의 요구사항을 꼼꼼히 읽고, 주어진 시간 안에 문제를 효율적으로 해결할 수 있는 방법을 선택하는 전략도 중요합니다.

rosy님의 프로필 이미지
rosy
질문자

답변 감사합니다 ㅎㅎ

rosy님의 프로필 이미지
rosy

작성한 질문수

질문하기