본문 바로가기

알고리즘, 자료구조

[백준| 단계별로 풀어보기 4단계 1차원 배열 | Python] 2562번 최댓값

1. 문제 목적

 9개의 서로 다른 자연수가 주어졌을 때, 이 중 최대값을 찾고, 그 최대값이 몇 번째 수인지를 알아내는 문제입니다. 이 문제를 통해 학습할 수 있는 주요 목적은 리스트의 기본적인 활용 방법과, 리스트 내에서 최대값을 찾는 과정 및 그 위치를 식별하는 방법을 익히는 것입니다.

2. 핵심 개념

  • 리스트: Python에서 여러 데이터를 연속적으로 관리할 수 있는 기본적인 자료 구조입니다. 본 문제에서는 9개의 자연수를 저장하고 관리하는 데 사용됩니다.
  • max() 함수: Python 내장 함수로, 주어진 리스트나 여러 인자 중에서 최대값을 반환합니다.
  • index() 메서드: 리스트에서 특정 값의 위치를 찾을 때 사용하는 메서드입니다. 찾고자 하는 값의 첫 번째 인덱스를 반환합니다.

3. 문제 해결 절차

  1. 입력 받기: 9개의 자연수를 순차적으로 입력받아 리스트에 저장합니다.
  2. 최대값 찾기: max() 함수를 사용하여 입력받은 수들 중 최대값을 찾습니다.
  3. 최대값의 위치 찾기: index() 메서드를 사용하여 최대값의 위치(인덱스)를 찾습니다. 리스트의 인덱스는 0부터 시작하지만 문제에서 요구하는 것은 1부터 시작하는 순서이므로, 찾은 인덱스에 1을 더해줍니다.
  4. 결과 출력: 최대값과 그 값이 몇 번째 수인지를 출력합니다.
numbers = [int(input()) for _ in range(9)]  # 9개의 숫자를 입력받아 리스트에 저장
max_value = max(numbers)  # 최대값 찾기
max_index = numbers.index(max_value) + 1  # 최대값의 위치 찾기 (리스트는 0부터 시작하므로 1을 더함)

print(max_value)  # 최대값 출력
print(max_index)  # 최대값이 몇 번째 수인지 출력

 

4. 코드 분석

  • numbers = [int(input()) for _ in range(9)]: 9회 반복하는 리스트 컴프리헨션을 사용하여 사용자로부터 9개의 자연수를 입력받아 numbers 리스트에 저장합니다. 여기서 _는 반복 중 사용되지 않는 변수를 의미합니다.
  • max_value = max(numbers): max() 함수를 사용하여 numbers 리스트 내의 최대값을 찾아 max_value 변수에 할당합니다.
  • max_index = numbers.index(max_value) + 1: index() 메서드를 사용하여 max_value의 인덱스를 찾고, 문제의 요구사항에 맞게 1을 더하여 사람이 이해하기 쉬운 순서로 변환합니다. Python에서 리스트의 인덱스는 0부터 시작하지만, 문제에서는 1부터 시작하는 번호를 요구합니다.
  • print(max_value): 최대값을 출력합니다.
  • print(max_index): 최대값이 몇 번째 수인지를 나타내는 max_index를 출력합니다.

5. 추가 개념

.(점) 기호는 Python에서 객체의 속성이나 메서드에 접근할 때 사용됩니다. 이 기호는 "점 표기법(dot notation)"이라고 불리며, 특정 객체가 가지고 있는 속성(attribute)이나 메서드(method)를 호출할 때 사용됩니다.

 

객체(object)란 Python에서 데이터와 그 데이터에 적용할 수 있는 함수들의 모음입니다. 객체는 클래스(class)에 의해 생성되며, 클래스는 객체의 설계도와 같은 역할을 합니다. 각각의 객체는 특정 클래스의 인스턴스(instance)입니다.

점 표기법의 역할:

  • 속성 접근: 객체가 가진 속성(변수)에 접근할 때 사용합니다. 예를 들어, car.color는 car 객체의 color 속성에 접근합니다.
  • 메서드 호출: 객체가 가진 메서드(함수)를 호출할 때 사용합니다. 예를 들어, list.append(item)는 list 객체의 append 메서드를 호출하여 list에 item을 추가합니다.
numbers = [1, 2, 3]
numbers.append(4)  # 'append' 메서드를 호출하여 'numbers' 리스트에 4를 추가

 

이 예시에서 numbers는 리스트 객체이고, .append(4)numbers 리스트에 새로운 요소 4를 추가하는 append 메서드를 호출합니다. 여기서 .numbers 객체에 속한 append 메서드를 호출하겠다는 의미입니다.

 

6. 마무리

반복문을 활용하여 데이터를 입력받아서 리스트를 작성하는 방법을 알게 되었다.

점을 이용하여 객체에 접근한후 메서드를 호출해서 사용하는 방법을 알게 되었다.

인덴스 메서드를 사용하여 인덱스를 확인하는 방법을 알게 되었다.