점의 위치 구하기 Lv. 0

박영준·2023년 4월 17일
0

코딩테스트

목록 보기
42/300

문제 설명

사분면은 한 평면을 x축과 y축을 기준으로 나눈 네 부분입니다. 사분면은 아래와 같이 1부터 4까지 번호를매깁니다.

  • x 좌표와 y 좌표가 모두 양수이면 제1사분면에 속합니다.
  • x 좌표가 음수, y 좌표가 양수이면 제2사분면에 속합니다.
  • x 좌표와 y 좌표가 모두 음수이면 제3사분면에 속합니다.
  • x 좌표가 양수, y 좌표가 음수이면 제4사분면에 속합니다.

x 좌표 (x, y)를 차례대로 담은 정수 배열 dot이 매개변수로 주어집니다. 좌표 dot이 사분면 중 어디에 속하는지 1, 2, 3, 4 중 하나를 return 하도록 solution 함수를 완성해주세요.

class Solution {
    public int solution(int[] dot) {
        int answer = 0;
        return answer;
    }
}

제한 사항

  • dot의 길이 = 2
  • dot[0]은 x좌표를, dot[1]은 y좌표를 나타냅니다
  • -500 ≤ dot의 원소 ≤ 500
  • dot의 원소는 0이 아닙니다.

입출력 예

입출력 예 설명

  • 입출력 예 #1

    • dot이 [2, 4]로 x 좌표와 y 좌표 모두 양수이므로 제 1 사분면에 속합니다. 따라서 1을 return 합니다.
  • 입출력 예 #2

    • dot이 [-7, 9]로 x 좌표가 음수, y 좌표가 양수이므로 제 2 사분면에 속합니다. 따라서 2를 return 합니다.

해결법

방법 1

class Solution {
    public int solution(int[] dot) {
    	int answer = 0;
    
    	if ((0 < dot[0]) && (0 < dot[1])) {
        	answer = 1;
    	} else if ((dot[0] < 0) && (0 < dot[1])) {
        	answer = 2;
    	} else if ((dot[0] < 0) && (dot[1] < 0)) {
        	answer = 3;
    	} else if ((0 < dot[0]) && (dot[1] < 0)) {
        	answer = 4;
    	}
        
        return answer;
    }
}
  • else if 를 활용

  • 주의

    • x, y 값을 따로 선언하지 않고, 'dot[0]은 x좌표를, dot[1]은 y좌표를 나타냅니다.'라는 조건 활용하기

방법 2

class Solution {
    public int solution(int[] dot) {
        int answer = 0;
        int x = dot[0];
        int y = dot[1];
    
        if ((0 < x) && (0 < y)) {
            answer = 1;
        } else if ((x < 0) && (0 < y)) {
            answer = 2;
        } else if ((x < 0) && (y < 0)) {
            answer = 3;
        } else if ((0 < x) && (y < 0)) {
            answer = 4;
        }
        
        return answer;
    }
}
  • x, y 값을 따로 선언해서 하고 싶은 경우

방법 3

class Solution {
    public int solution(int[] dot) {
    	int answer = 0;
    	int x = dot[0];
    	int y = dot[1];

    	if(x > 0){
        	if(y > 0) {
            	answer = 1;
        	} else {
            	answer = 4;
        	}
    	}
    
    	if(x < 0) {
        	if(y > 0) {
            	answer = 2;
        	} else {
            	answer = 3;
        	}
        }  
        
        return answer;
    }
}
  • y 의 음수/양수만 변화를 줘서 조건문을 안쪽, 바깥쪽 으로 사용

방법 4

class Solution {
    public int solution(int[] dot) {
    	int answer = 0;

    	if(dot[0] > 0){
        	if(dot[1] > 0) {
            	answer = 1;
        	} else {
            	answer = 4;
        	}
    	}
    
    	if(dot[0] < 0) {
        	if(dot[1] > 0) {
            	answer = 2;
        	} else {
            	answer = 3;
        	}
        }  
        
        return answer;
    }
}
  • x,y 값을 따로 변수로 선언해주지 않고, 그대로 dot[0], dot[1]을 사용해도 무방

방법 5

class Solution {
    public int solution(int[] dot) {
    	int answer = 0;

    	if(dot[0] > 0){
        	if(dot[1] > 0) {
            	answer = 1;
        	} else {
            	answer = 4;
        	}
    	} else {
        	if(dot[1] > 0) {
            	answer = 2;
            } else {
            	answer = 3;
        }
           
        return answer;
    }
}
  • 바깥 if를 하나만 사용해도 무방

점의 위치 구하기

profile
개발자로 거듭나기!

0개의 댓글