문제번호 2566번 최댓값
첫째 줄부터 아홉 번째 줄까지 한 줄에 아홉 개씩 수가 입력된다. 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행과 열을 빈칸을 사이에 두고 차례로 출력해야 한다. 최댓값이 두 개 이상인 경우 그중 한 곳의 위치를 출력한다.
답안 :
1 import sys
2 num = []
3 max_num = 0
4 max_num_row = 0 #행
5 max_num_column = 0 #열
6 for i in range(9) :
7 num.append(list(map(int,sys.stdin.readline().split())))
8 for row in range(9) :
9 for column in range(9) :
10 num_now = num[row][column]
11 if num_now >= max_num :
12 max_num = num_now
13 max_num_row = row+1
14 max_num_column = column+1
15 print(max_num)
16 print(max_num_row,max_num_column)
comment :
# 행렬을 표준입력받기 위해 sys모듈을 가져오고, 입력을 받기 위하여 빈리스트인 변수를 설정한다.
# 마지막에 출력을 위해서 최댓값과 최댓값의 행과 열에 대한 변수를 설정해준다.
# 9x9 이므로 9행으로 입력을 받아준다.
# 행과 열에 대한 숫자를 하나씩 불러와서 지금까지 검사한 값들 중 최댓값인 값과 비교를 한다.
# 만약 현재 불러온 숫자가 최댓값보다 크면 현재의 숫자로 최댓값과 그에 대한 행렬을 교체하고 아니면 넘어간다.
# 마지막으로 원하는 대로 출력해준다.
----------------------------------------------------------
문제번호 10798번 세로읽기
총 다섯 줄이 입력된다. 각 줄에는 1~15개의 글자들이 빈칸 없이 연속으로 입력된다. 입력글자는 영어 대소문자와 숫자 0부터 9이다. 세로로 읽은 순서대로 글자들을 출력해야 한다.
답안 :
1 letter = [list(input().strip()) for _ in range(5)]
2 for x in range(5):
3 while len(letter[x]) < 15:
4 letter[x].append(' ')
5 for row in range(15):
6 for column in range(5):
7 print(letter[column][row].strip(), end='')
comment :
# 각 리스트를 입력받는다.
# 리스트의 최대 길이가 15이므로 15가 되지 않으면 해당 리스트의 길이를 15가 될 때까지 공백(' ')으로 만드는 반복문을 설정한다.
# 행렬을 뒤집어서 출력하는데, 빈칸이 있으면 붙이고, end=''를 넣어 연속으로 출력되는 값들 또한 붙인다.
# 본래 생각했던 코드는 백준 시간초과가 걸렸으나 아래에 첨부하였다. 이 코드는 공백 대신 '\n'을 넣는 식으로 하였다. '\n'이 값으로 나올 경우에는 붙이는 코드를 작성하였다.
'프로그래밍 > 파이썬 python' 카테고리의 다른 글
단계별로 풀어보기 8 - 일반 수학 1(2) (0) | 2023.08.08 |
---|---|
단계별로 풀어보기 7 - 2차원 배열(3), 8 - 일반 수학 1(1) (0) | 2023.08.07 |
단계별로 풀어보기 6 - 심화 1 (4), 7 - 2차원 배열(1) (0) | 2023.08.05 |
단계별로 풀어보기 6 - 심화1 (3) (0) | 2023.08.04 |
단계별로 풀어보기 6 - 심화1 (2) (0) | 2023.08.03 |