[스파르타 코딩클럽] 부트캠프

[Python] max, min. index 구현 코드 작성하기 | 25.06.02 (월) TIL

marketing-moong 2025. 6. 2. 20:45

📌 오늘 학습 키워드

  • max()
  • min()
  • .index()

📖 오늘 학습한 내용을 나만의 언어로 정리하기

오늘은 max(), min() 함수를 사용하지 않고 파이썬 작동 방식에 따라 코드를 작성해보았다.

numbers = [10,20,30,40,50]

max_number = numbers[0]
min_number = numbers[0]
diff = max_number - min_number

for number in numbers:
  if number >= max_number:
    max_number = number

for number in numbers:
  if number <= min_number:
    min_number = number

print(diff)

 

헷갈렸던 것은 max와 min에 임의의 값을 주는 것이었다. 

 

max를 구하는 경우에는 0을 임의로 주었을 때 코드가 제대로 진행됐지만, min을 구하는 경우에는 값을 주는 기준이 애매했다.

그래서 고민하던 중 새로운 방법을 찾았다. 

바로 리스트에 있는 요소들 중 하나로 시작을 하는 것이다. 

 

그래서 max_number 변수에 numbers[0] 를 넣어주었다. 

이렇게 하니 정확하게 임의의 값을 줄 수 있었다. 

 

또한 index() 메서드를 사용하지 않고 동일하게 동작하는 함수를 직접 만들어보았다. 

numbers = [1800,1000,1500,1200,2000]

max_cost = numbers[0]
max_index = 0
min_cost = numbers[0]
min_index = 0

i = 0
while i < len(numbers):
  if numbers[i] > max_cost:
    max_cost = numbers[i]
    max_index = i
  if numbers[i] < min_cost:
    min_cost = numbers[i]
    min_index = i
  i += 1


print(f"최고 광고비는 {max_cost}원, 위치는 {max_index}번째")
print(f"최저 광고비는 {min_cost}원, 위치는 {min_index}번째")

 

while 반복문을 사용해서 변수 i를 리스트의 길이 -1 만큼 반복하는 것이다. 

변수 i 가 들어갔을 때 조건문이 작동하면 인덱스가 i가 되는 원리이다. 

 

문제 정의와 관련된 팁 

  • 결과를 공유하고자 하는 사람이 누구인지 정의하기
  • 결과를 통해 원하는 변화를 생각하기 
  • 회사 소속이라면, 경영자의 입장에서 보려고 노력
  • 많은 사람들과 의견을 나눠보는 것도 방법
  • 반드시 혼자서 오래 고민해보는 시간을 가질 것 

 학습하며 겪었던 문제점 & 에러

max와 min에 임의 값을 주는 부분이 오늘 겪은 문제점이었다. 

하지만 팀원들과의 논의 끝에 답을 도출해낼 수 있었다..!


🎯 내일 학습할 내용

튜터님께서 2번째 코드를 for 문으로 작성해보는 것도 해보라고 권장해주셨다. 

반복해야 하는 길이가 정해져있으니 while 보다는 for 문을 사용하는 것이 더 좋다고 하셨다.

다음 수업 시간에 for 문을 사용해서 코드를 작성해보려고 한다.