티스토리 뷰

 

백준 14681번 [파이썬 알고리즘] 사분면고르기

 

Python3 코드

x= int(input())
y= int(input())

if x > 0 and y > 0 :	# x,y: 양수
    print('1')
elif x < 0 and y > 0 :	# x:음수, y:양수
    print('2')
elif x < 0 and y < 0 :	# x,y: 음수
    print('3')
else:
    print('4')

 

 

Python3 코드 풀이

 

1. 작성한 코드에 대한 전체적인 내용 풀이

이 문제는 x, y 좌표에 해당하는 두 수를 입력받으면 해당 좌표에 있는 수가 4 사분면 중 어느 사분면에 있는지를 출력하는 문제이다. 입력받는 값이 어떤 조건에 해당하는지에 따라 출력 값이 정해져 있는 문제이므로 Boolean 값에 따라 출력 값을 달리하는 if조건식을 이용해서 코드를 작성할 수 있다.

 

2. 코드 상단, 두 수를 입력 받는다.

x= int(input())
y= int(input())

이번 문제는 두 개의 수를 한 번에 하나씩 입력받는다. 먼저 입력받는 수가 좌표의 x에 해당하고 나중에 입력받는 수가 y에 해당하므로 입력받는 수를 각각 x와 y 변수로 선언하였다. 

input 함수로 입력받는 경우 문자열로 입력되기 때문에 int 함수를 이용해서 숫자로 변환하였다. 

 

3. 사분면의 기준

위 문제의 그림에서 나오는 것처럼 직교좌표평면에서 두 직선 x축과 y축이 만나는 점은 원점이고 x, y 좌표축은 평면을 4개의 면으로 나눈다. 4개의 면으로 나뉜 평면은 1~4 사분면이라고 표현하는데 우측 상단 쪽 평면을 1 사분면으로 시작하여 반시계 방향으로 2,3,4 사분면으로 나뉜다. 이때, 사분면에 위치한 좌표가 어느 사분면에 있는지는 x와 y의 값이 양수인지 음수인지로 알 수 있다. 그 기준은 아래와 같다. 

1 사분면 : x>0 이면서 y>0 
2 사분면 : x<0 이면서 y>0
3 사분면 : x<0 이면서 y<0
4 사분면 : x>0 이면서 y<0

0과 같은 때를 고려하지 않는 이유는 좌표축 위에 위치한 점의 경우는 어떤 사분면에도 해당하지 않기 때문이다.

 

4. 사분면 기준을 if - elif - else 조건식을 작성한다.

위에서 x, y의 양수 음수 값에 따라 정리한 4 사분면의 기준을 이용해서 if 조건식을 작성할 수 있다.

if x > 0 and y > 0 :	# x,y: 양수
    print('1')
elif x < 0 and y > 0 :	# x:음수, y:양수
    print('2')
elif x < 0 and y < 0 :	# x,y: 음수
    print('3')
else:
    print('4')

만일 입력받는 수 x, y 중에 0이 포함되는 경우 코드를 위와 같이 작성하게 되면 모두 else에 해당되어 4를 출력하게 된다. 그런데 문제를 읽어보면 입력받는 수는 (−1000 ≤ x ≤ 1000; x ≠ 0), (−1000 ≤ y ≤ 1000; y ≠ 0)이라고 되어있다. x, y가 0이 아닌 수만 출력되므로 조건식을 위와 같이 작성하여도 에러 없이 정상 출력될 수 있게 된다.

 

반응형
댓글
반응형