코딩테스트 (C#)

백준 14681 : 사분면 고르기 - C# 풀이

UniCoti-sub 2024. 8. 14.
반응형

문제 사진.

이번 문제 또한 간단하다.

x값과 y값을 받아서 어느 사분면에 있는지 판단하여 1~4중 하나를 출력하면 되는 문제이다.

x나 y가 0인 경우는 고려하지 않아도 되기에 간단한 if문 만으로도 표현할 수 있다.

using System;

namespace unicoti {
    class Program {
        static void Main(string[] args) {
            int x,y;
            int.TryParse(Console.ReadLine(), out x);
            int.TryParse(Console.ReadLine(), out y);
            
            if(x > 0) { //1 or 4
                if(y > 0) {
                    Console.WriteLine("1");
                } else {
                    Console.WriteLine("4");
                }
            } else {
                if(y > 0) {
                    Console.WriteLine("2");
                } else {
                    Console.WriteLine("3");
                }
            }    
        }
    }
}

 

먼저, x값을 양수와 음수로 나눠주었다.

x값이 양수라면 제 1사분면이거나 제 4사분면인데, 이건 y값으로 결정된다.

그렇기에 x값이 양수일때의 코드 안에 y값을 판단하는 if문을 통해서

제1사분면과 제4사분면을 결정할 수 있었다.

 

마찬가지로, x가 음수인 경우에는 제 2사분면과 제 3사분면이 가능한데,

y값을 if문을 통해서 구분해주어 각각 어느 사분면인지 판단할 수 있었다.


오늘의 느낀점)

나름대로 쉬운 문제였으나 좌표 특성상 각도로 변환할 수 있기에 역탄젠트를 이용해서

각도로 변환만 시켜준다면 한개의 if-else if-else 구문으로 끝낼 수 있겠다고 생각했다.

if문 안에 if문을 쓰는걸 3번 이상 반복하면 안된다고 할 만큼 가시성도 안좋고

많이들 쓰지 말라고 하는 구문이라서 위와 같이 생각을 한번 해 봤으나

2번까지는 괜찮다고 여겨 그냥 저렇게 풀었다.

나름대로 고민해볼 거리가 있었던 문제인 것 같다.

반응형

댓글