프로그래밍/코딩 테스트 연습

[백준] 14681번 : 사분면 고르기 (2단계) (Python)

w_w 2024. 2. 21. 21:18
 

14681번: 사분면 고르기

점 (x, y)의 사분면 번호(1, 2, 3, 4 중 하나)를 출력한다.

www.acmicpc.net

 

 


 

 

문제

 

 

 


 

 

해석

 

 

정수를 입력받아 조건에 따라 다른 결과를 리턴하는 문제입니다. 이전이 풀었던 점수에 따라 출력이 달라지는 문제와 알고리즘이 동일하는 점을 문제를 통해 알 수 있고, 조건만 이해하면 쉽게 풀 수 있습니다.

 

 

 

 

 

풀이

 

 

x, y값에 따라 사분면이 달라지고, 그 기준은 x가 양, 음일 때 y가 양, 음 일 때 달라짐을 문제의 그림을 통해 알 수 있습니다. 따라서 조건의 기준은 x가 0보다 큰지, 작은지 와 y가 0보다 큰지, 작은지에 대해 논리식을 세워야 할 것입니다.

 

처음에 이 문제를 봤을 때 x와 y가 0인 경우에는 어떻게 처리할지 궁금했는데 입력 조건을 보면 0이 될 수 없다는 점을 밝혔기 때문에 x와 y가 0인 되는 경우는 생각하지 않아도 됩니다.

 

종합적으로 문제의 조건은 다음과 같이 표현할 수 있습니다.

 

a = input()
a = int(a)
b = input()
b = int(b)

if a>0 and b>0:
    print('1')
elif a>0 and b<0:
    print('4')
elif a<0 and b<0:
    print('3')
else:
    print('2')

 

a와 b는 공백문자가 아니라 개행문자로 입력받기 때문에 따로 input()으로 받았고, 문자형으로 데이터가 저장되기 때문에 정수형으로 형변환 후 논리식을 사용합니다.

 

 


정리

 

 

제어문의 조건을 문제에 주어진 형태로 바꾸는 연습을 할 수 있는 문제입니다.

 

논리식을 사용하지 않은 중첩 if문이나 논리식을 사용하는 if ~ else문으로 문제를 풀 수 있습니다.