본문 바로가기

코딩테스트

[백준] 2566번: 최댓값 (브론즈3, Python)

반응형

https://www.acmicpc.net/problem/2566

 

2566번: 최댓값

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

www.acmicpc.net

 

문제 해결 아이디어

  1. 함수 내에 최대값과 인덱스 위치를 저장할 변수 선언 (val, loc)
  2. 한 행씩 불러오며 값을 하나씩 확인하고, 크거나 같은 경우 val과 loc을 업데이트 (최대값이 두개 이상인 경우 한 곳의 위치를 출력하면 됨.)
  3. 위치를 저장할 때 1씩 더해줌 (index 0 부터 시작)
  4. loc을 리스트로 받고 출력 시 값을 풀어서 표현해줌 print(*)

소스 코드 (Python)

def max_val81(array):
    val = 0
    loc = []
    
    for row in range(len(array)):
        for tmp in array[row]:
            if tmp >= val:
                val = tmp
                loc = [row+1, array[row].index(val)+1]
            else: pass
    
    print(val)
    print(*loc)
    
if __name__ == '__main__':
    arr = []
    for _ in range(9):	# 9번 들어올걸 알고 있음
        tmp = [int(k) for k in input().split()]
        arr.append(tmp)
      
    max_val81(arr)

결과

굿굿

반응형