백준 2562번

2025. 1. 23. 13:25백준

문제

9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오.

예를 들어, 서로 다른 9개의 자연수

3, 29, 38, 12, 57, 74, 40, 85, 61

이 주어지면, 이들 중 최댓값은 85이고, 이 값은 8번째 수이다.

내 풀이

import sys
num =[]
for i in map(int,sys.stdin):
    num.append(i)

for i in range(len(num)):
    if max(num)== num[i]:
        print(max(num), i+1, sep='\n')

다른 사람 풀이

*a,=map(int,open(0))
m=max(a)
print(m,a.index(m)+1)

키보드의 입력을 파일로 읽어서 숫자로 처리한 후에 *a로 하여 많은 값들을a에 넣어준다(리스트 타입)
그후 a의 최대값을 m에 넣고 list.index()를 이용해 최대값의 인덱스를 뽑아준다

l = [int(input()) for i in range(9)]

print(max(l))
print(l.index(max(l)) + 1)

이거는 반복문을 이용해서 입력을 9개 받은 것.

다들 이런건 어디서 배워서 하는지 참 궁금하다.
open()의 인자로 0이 들어가면 키보드를 통해 입력하는 내용을 읽을 파일로 간주한다.
open().read()는 입력 전체를 하나의 문자열로 리턴
open().readline()은 입력을 한 줄씩 리턴
open().readlines()은 입력을 개행으로 구분해 리스트 형태로 리턴

open() 함수는 파일을 열고 파일 객체를 반환하는 함수.
파일을 이용한 후에는 close() 메서드를 호출하여 파일을 닫아야한다.
with 구문을 이용하면 파일을 자동으로 닫을 수 있어 편리하게 사용할 수 있다.

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

file: 열고자 하는 파일의 경로와 이름
mode: 파일을 열 때 사용할 모드
buffering: 버퍼링 정책을 설정
encoding: 파일을 읽거나 쓸 때 사용할 인코딩(기본은 시스템의 인코딩을 따름)
errors: 인코딩 및 디코딩 오류 처리 방식을 설정
newline: 개행 문자를 어떻게 처리할지 설정

'r' : open for reading (default)

'w' : open for writing, truncating the file first

'x' : open for exclusive creation, failing if the file already exists

'a' : open for writing, appending to the end of file if it exists

'b' : binary mode

't' : text mode (default)

'+' : open for updating (reading and writing)

ex

with open('example.txt', 'r', encoding= 'utf-8') as file:
  content = file.read()
  print(content)

list.index()는 list의 요소가 몇 번째 인덱스인지 보여준다

반응형

'백준' 카테고리의 다른 글

백준 3052번  (0) 2025.01.23
백준 1546번  (0) 2025.01.23
백준 10951번  (0) 2025.01.23
백준 10871번  (0) 2025.01.23
백준 10807번  (0) 2025.01.23