경우의 수를 나눠서 풀 수도 있지만 조금 더 흥미로운 방법이 있다.
int x = int.Parse(Console.ReadLine());
int y = int.Parse(Console.ReadLine());
//1
if (x > 0 && y > 0)
Console.Write('1');
else if (x < 0 && y > 0)
Console.Write('2');
else if (x < 0 && y < 0)
Console.Write('3');
else if (x > 0 && y < 0)
Console.Write('4');
//2
switch (Math.Atan2(y, x))
{
case < -Math.PI / 2: Console.Write('3'); break;
case < 0: Console.Write('4'); break;
case < Math.PI / 2: Console.Write('1'); break;
case < Math.PI: Console.Write('2'); break;
default: break;
}
1번은 x, y가 가질 수 있는 모든 경우의 수를 다룬 정석적인 풀이 방법이고
2번은 탄젠트의 역함수인 아크탄젠트를 이용하여 점 (x, y)와 원점과의 라디안을 계산한 것이다.
위는 Atan2 메소드에 대한 설명이다.
'문제 풀이 > 백준' 카테고리의 다른 글
백준 2739 C#) 구구단 (0) | 2022.04.17 |
---|---|
백준 2884 C#) 알람 시계 (0) | 2022.04.17 |
백준 9498 C#) 시험 성적 (0) | 2022.04.17 |
백준 2753 C#) 윤년 (0) | 2022.04.17 |
백준 1330 C#) 두 수 비교하기 (0) | 2022.04.17 |
댓글