더북(TheBook)

2. 그중 정수 교점만 기억하고, 최소/최대 크기를 알아냅니다.

if x.is_integer() and y.is_integer():
    x = int(x)
    y = int(y)
    meet.append([x, y])
    x_max, y_max = max(x_max, x), max(y_max, y)
    x_min, y_min = min(x_min, x), min(y_min, y)

교점의 방정식 공식으로 나온 float과 이를 정수로 형 변환한 int의 값을 비교하지 않고, float 값을 그대로 두고 is_integer() 함수로 직접 이 숫자가 정수인지 확인하는 과정으로 변경했습니다. 소수점을 확인할 필요가 없다면 이 방식도 유효하니 해당 값이 정수인지 확인하는 또 다른 방법을 기억해두세요.

3. 교점을 모두 표현할 수 있는 최소한의 사각형을 알아냅니다.

width = abs(x_max - x_min) + 1
height = abs(y_max - y_min) + 1
answer = [['.'] * width for _ in range(height)]

계산 결과는 동일하나 이번에는 조금 더 이해하기 쉽게 abs() 함수를 사용하여 영점에서부터 얼마나 떨어졌는지 계산하는 방식으로 바꿨습니다. 수치를 계산하는 방법은 여러분이 원하는 대로 선택하면 됩니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.