좌표 클래스


답안 제출

Points: 1
시간 제한: 2.0s
메모리 제한: 1G

문제 유형
허용된 언어
Python

평면 위의 좌표를 저장하고 두 가지 방법으로 이동할 수 있는 Point 클래스를 작성하시오.

작성할 클래스

다음 형태의 클래스를 작성한다.

class Point:
    def __init__(self, x, y):
        # 코드를 작성하세요.

    def move_to(self, x, y):
        # 코드를 작성하세요.

    def move_by(self, dx, dy):
        # 코드를 작성하세요.

    def get_position(self):
        # 코드를 작성하세요.
  • 생성자 __init__(x, y)는 정수 x, y를 받아 현재 좌표로 저장한다.
  • move_to(x, y)는 현재 위치와 관계없이 좌표를 (x, y)로 변경하고 값을 반환하지 않는다.
  • move_by(dx, dy)는 현재 위치에서 \(x\)축 방향으로 dx, \(y\)축 방향으로 dy만큼 이동하고 값을 반환하지 않는다.
  • get_position()은 현재 좌표를 (x, y) 형태의 tuple로 반환한다.

클래스를 사용하는 코드

작성한 클래스는 아래 코드와 함께 실행된다.

x, y = map(int, input().split())
to_x, to_y = map(int, input().split())
dx, dy = map(int, input().split())

point = Point(x, y)

result = point.get_position()
print(*result)
print(type(result))

result = point.move_to(to_x, to_y)
print(type(result))

result = point.get_position()
print(*result)
print(type(result))

result = point.move_by(dx, dy)
print(type(result))

result = point.get_position()
print(*result)
print(type(result))

위 코드가 정상적으로 동작하도록 클래스를 작성한다. 제출할 때는 작성한 클래스의 정의 전체만 제출한다. 입력을 받거나 객체를 생성하는 코드는 제출하지 않는다.

입력

첫째 줄에 처음 위치 x, y가 주어진다.

둘째 줄에 move_to()에 전달할 to_x, to_y가 주어진다.

셋째 줄에 move_by()에 전달할 dx, dy가 주어진다.

  • 입력되는 모든 정수는 \(-1,000,000,000\) 이상 \(1,000,000,000\) 이하이다.

출력

처음 위치, move_to()를 호출한 뒤의 위치, move_by()를 호출한 뒤의 위치를 차례대로 출력한다.

move_to()move_by()는 값을 반환하지 않아야 하며, get_position()tuple을 반환해야 한다.

각 메서드를 호출한 뒤에는 반환값의 자료형도 출력한다.

예제 입력 1

3 5
10 -2
-2 4

예제 출력 1

3 5
<class 'tuple'>
<class 'NoneType'>
10 -2
<class 'tuple'>
<class 'NoneType'>
8 2
<class 'tuple'>

예제 설명 1

Point(3, 5)로 객체를 만들면 처음 위치는 (3, 5)이다. get_position()은 이 좌표를 tuple로 반환한다.

  1. move_to(10, -2)를 호출하면 현재 위치와 관계없이 좌표가 (10, -2)로 변경된다. 이 메서드는 값을 반환하지 않는다.
  2. get_position()을 다시 호출하면 (10, -2)를 반환한다.
  3. move_by(-2, 4)를 호출하면 현재 위치에서 \(x\)축으로 -2, \(y\)축으로 4만큼 이동하므로 좌표는 (8, 2)가 된다. 이 메서드도 값을 반환하지 않는다.
  4. 마지막 get_position()(8, 2)tuple로 반환한다.

예제 입력 2

0 0
-3 7
5 -1

예제 출력 2

0 0
<class 'tuple'>
<class 'NoneType'>
-3 7
<class 'tuple'>
<class 'NoneType'>
2 6
<class 'tuple'>

코멘트

현재 작성된 코멘트가 없습니다.