새소식

Programmers Coding Test/Java

[프로그래머스 120841] Java - 코딩테스트 입문 / 점의 위치 구하기

  • -

 

 

점의 위치 구하기

 

 

https://school.programmers.co.kr/learn/courses/30/lessons/120841

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

1)  문제

사분면은 한 평면을 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 함수를 완성해주세요.
제한사항
dot의 길이 = 2
dot[0]은 x좌표를, dot[1]은 y좌표를 나타냅니다
-500 ≤ dot의 원소 ≤ 500
dot의 원소는 0이 아닙니다.

 

 

 

2)  예시

 

 

Result Table
dot result
[2, 4] 1
[-7, 9] 2

 

 

 

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


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

 

 

 

 

 

3)  풀이

 

 

1. 클래스 선언을 해줍니다

● class Solution {

클래스명은 대문자로 시작해야하고, 정답이라는 의미로 Solution이라는 단어를 사용하였습니다.

 

 

 

 

2. 메소드 선언을 해줍니다.

● public int solution(int[] dot) {

정수배열 dot을 매개변수로 사용하는 solution 메소드를 선언해줍니다.

메소드의 결과값인 solution은 정수이 나오므로, 데이터 타입을 int로 해줍니다.

 

 

 

 

 

 

3. ?사분면에 위치한 답을 answer로 선언하고 0으로 초기화합니다.

dot[0]은 x좌표를 의미하므로 변수 x에,

dot[1]은 y좌표를 의미하므로 변수 y에 할당합니다.

그리고 제한사항을 확인하고, 제한사항을 만족하지 않는다면 예외처리합니다.

      int answer = 0;
        int x = dot[0];
        int y = dot[1];
        
        if(x < -500 || x > 500 || x == 0 || y < -500 || y > 500 || y == 0){
            throw new IllegalArgumentException("제한사항을 확인하세요");
        }

        

 

 

 

 

4. 조건문 if를 활용하고, else if를 이용하여 1번 조건문을 만족하지 않을 경우, 2번 조건문, 3번 조건문, 4번 조건문까지 진행되도록합니다. 문제에 맞게, x가 양일때, 음일때, y가 양일때, 음일때에 맞게 값을 주고,

최종적인 answer를 반환해줍니다.

●  if(x > 0 && y >0){
                answer = 1;
            } else if (x > 0 && y < 0){
                answer = 4;
            } else if(x < 0 && y > 0){
                answer = 2;
            } else if (x < 0 && y < 0){
                answer = 3;
            }
        return answer;
    }
}

 

 

※ else if란

else if는 else 뒤에 오는 조건이 true일 때만 실행되는 구문입니다. 
여러 개의 조건을 순차적으로 검사하고자 할 때 사용됩니다.

 

if (condition1) {
    // condition1이 true일 때 실행되는 코드
} else if (condition2) {
    // condition1이 false이고 condition2가 true일 때 실행되는 코드
} else if (condition3) {
    // condition1과 condition2가 false이고 condition3이 true일 때 실행되는 코드
} else {
    // 모든 조건이 false일 때 실행되는 코드
}

 

 

 

 

 

4)  코드

 

class Solution {
    public int solution(int[] dot) {
        int answer = 0;
        int x = dot[0];
        int y = dot[1];
        
        if(x < -500 || x > 500 || x == 0 || y < -500 || y > 500 || y == 0){
            throw new IllegalArgumentException("제한사항을 확인하세요");
        }
    
        
        if(x > 0 && y >0){
                answer = 1;
            } else if (x > 0 && y < 0){
                answer = 4;
            } else if(x < 0 && y > 0){
                answer = 2;
            } else if (x < 0 && y < 0){
                answer = 3;
            }
        return answer;
    }
}

 

 

 

 

 

 

 

 

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.