from dataclasses import dataclass
@dataclass
class MaxNum:
x: int = 0
y: int = 0
max: int = 0
N = []
MN = MaxNum()
for a in range(9):
N.append(list(map(int, input().split())))
for n in range(len(N)):
for a in range(len(N[n])):
if MN.max <= N[a][n]:
MN.x = n + 1
MN.y = a + 1
MN.max = N[a][n]
print(MN.max)
print(MN.y, MN.x)
최댓값과, x, y는 하나의 정보를 가리키는 값으로 사용되는데 한번에 c의 구조체처럼 쓰고싶었다.
기존에 파이썬은 구조체가 없고, 클래스 또한 데이터 타입을 지정할 수 없어 네임드 튜플을 사용했었다.
from collections import namedtuple
MyStruct = namedtuple("MyStruct", "field1 field2 field3")
m = MyStruct("foo", "bar", "baz")
하지만 파이썬 3.7부터 dataclass를 지원하여 @dataclass 데코레이션으로 타입 힌트와 함께 class를 구조체 형태로 정의할 수 있다
from dataclasses import dataclass
@dataclass
class MaxNum:
x: int = 0
y: int = 0
max: int = 0