본문 바로가기
백준

[백준] 2566번 : 최댓값 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트

by 우당탕탕 개발자 2023. 10. 6.
728x90
반응형

 

 

2566번: 최댓값

첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행 번호와 열 번호를 빈칸을 사이에 두고 차례로 출력한다. 최댓값이 두 개 이상인 경우 그 중 한 곳의 위치를 출력한다.

www.acmicpc.net

 

1. 문제 설명

2. 풀이과정

해당 문제는 격자판의 숫자를 모두 입력받아 2차원 배열로 저장한 후, 각 값을 하나씩 불러와 계속적으로 최댓값을 찾고 새로운 최댓값을 찾으면 해당 행 번호와 열 번호를 저장한다.

 

  1. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys
  2. 격자판에 쓰여진 숫자를 입력받아 2차원 리스트로 저장한다. li = list(list(map(int, sys.stdin.readline().split())) for _ in range(9))
  3. 최대값을 저장할 변수를 생성하고 초기화한다. max_num = 0
  4. 최댓값의 행 번호를 저장할 변수를 생성하고 초기화한다. max_row = 0
  5. 최댓값의 열 번호를 저장할 변수를 생성하고 초기화한다. max_col = 0
  6. 격자판의 모든 숫자를 하나씩 가져와 for i in range(9): for j in range(9)
  7. 만약 해당 숫자가 현재 최댓값보다 크거나 같으면 if (li[i][j] >= max_num)
  8. 현재 행 번호를 저장하고 max_row = i + 1
  9. 현재 열 번호도 저장한다. max_col = i + 1
  10. 최댓값도 새로 저장해준다. max_num = li[i][j]
  11. 격자판에서 최댓값을 출력해주고 print(max_num)
  12. 최댓값의 행 번호와 열 번호도 출력해준다. print(max_row, max_col)
반응형

3. 소스코드

import sys

li = list(list(map(int, sys.stdin.readline().split())) for _ in range(9))

max_num = 0
max_row = 0
max_col = 0
for i in range(9):
    for j in range(9):
        if (li[i][j] >= max_num):
            max_row = i + 1
            max_col = j + 1
            max_num = li[i][j]
            
print(max_num)
print(max_row, max_col)
728x90
반응형