값이 아닌 인덱스 찾기
enumerate로 위치를 추적합니다
값이 아닌 인덱스 찾기은(는) CoddyKit의 무료 Competitive Programming Academy 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Competitive Programming Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Competitive Programming Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
위치가 중요합니다
정답은 값 자체가 아니라 값이 어디에 있는지일 때가 많습니다. 대회 문제에서는 1부터 시작하는 인덱스나 0부터 시작하는 인덱스를 자주 요구하므로 위치를 추적해야 합니다.
a = [4, 1, 7, 3].index()로 찾기
a.index(x)는 처음 일치하는 항목의 위치를 반환합니다. 작성하기는 쉽지만 왼쪽에서 오른쪽으로 O(n)만큼 훑습니다.
pos = a.index(7) # 2없는 값은 오류를 발생시킵니다
값이 없으면 .index()가 ValueError를 발생시키며 실행 중 오류로 중단됩니다. 확실하지 않을 때는 먼저 포함 여부를 확인하세요.
if x in a:
pos = a.index(x)enumerate로 반복하기
enumerate는 각 단계에서 인덱스와 값을 함께 제공하므로, 순회하면서 위치를 추적하는 깔끔한 방법입니다.
for i, v in enumerate(a):
print(i, v)enumerate를 1부터 시작하기
많은 채점 시스템에서는 1부터 시작하는 위치를 요구합니다. enumerate에 start=1을 전달하면 첫 인덱스가 1이 되어 문제의 조건과 일치합니다.
for i, v in enumerate(a, start=1):
...최댓값의 인덱스
최댓값이 어디에 있는지 찾으려면 순회하면서 가장 좋은 인덱스를 기억해야 합니다. max(a)만으로는 값만 얻을 수 있기 때문입니다.
best = 0
for i, v in enumerate(a):
if v > a[best]:
best = i간결한 최댓값 위치 찾기
간결한 방법이 있습니다. 각 인덱스와 값을 짝지은 뒤 값을 기준으로 최댓값을 선택하세요. 그러면 범위에서 위치를 바로 얻을 수 있습니다.
best = max(range(len(a)), key=lambda i: a[i])일치하는 모든 인덱스 모으기
특정 값이 있는 모든 위치가 필요하신가요? enumerate에 대한 컴프리헨션으로 모든 일치 항목을 한 줄에 모을 수 있습니다.
idx = [i for i, v in enumerate(a) if v == 7]값을 인덱스에 매핑하기
반복해서 조회해야 한다면 값에서 인덱스로 이어지는 딕셔너리를 한 번 만드세요. 이후의 각 검색을 O(1)로 처리할 수 있습니다.
where = {v: i for i, v in enumerate(a)}중복값에 주의하기
값에서 인덱스로 매핑한 딕셔너리는 마지막 항목만 유지합니다. 중복이 중요하다면 키마다 리스트를 사용하거나 enumerate를 사용하세요.
where = {}
for i, v in enumerate(a):
where.setdefault(v, []).append(i)인덱스 기준 변환하기
기준을 주의하세요. 0부터 시작하는 인덱스로 저장했지만 1부터 시작하는 인덱스로 출력해야 한다면 1을 더해야 합니다. 기준을 섞으면 조용히 오답이 되는 함정에 빠질 수 있습니다.
print(pos + 1) # 0-based to 1-based빠른 확인
반복하면서 1부터 시작하는 위치를 얻고 싶습니다. 어떻게 작성해야 할까요?
복습: 위치 추적하기
이제 하나의 인덱스, 최댓값의 인덱스, 모든 인덱스를 찾고 값을 위치에 안전하게 매핑할 수 있습니다. enumerate는 믿을 수 있는 위치 추적 도구입니다. 🎯
AI 튜터와 함께 Python을(를) 배우세요 — 무료
브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.
- 코스
- 30
- 레슨
- 120
자주 묻는 질문
“값이 아닌 인덱스 찾기” 강의는 무료인가요?
네 — “값이 아닌 인덱스 찾기” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Competitive Programming Academy 강의 전체를 잠금 해제할 수 있습니다. Competitive Programming Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“값이 아닌 인덱스 찾기”에서 뭘 배우나요?
enumerate로 위치를 추적합니다 브라우저에서 직접 실행하는 실습 코드로 Competitive Programming Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Competitive Programming Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Competitive Programming Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.
“값이 아닌 인덱스 찾기” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Competitive Programming Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Competitive Programming Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.