inblog logo
|
silver
    알고리즘문제풀기

    [알고리즘문제풀기] 점의 위치 구하기

    silver's avatar
    silver
    Nov 25, 2024
    [알고리즘문제풀기] 점의 위치 구하기
     

    문제

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

    내가 작성한 정답

    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; } }
     

    다른 사람들이 작성한 정답

    class Solution { public int solution(int[] dot) { int xParam = dot[0] < 0 ? 1 : 0; // x좌표가 음수이면 1, 아니면 0 int yParam = dot[1] < 0 ? 2 : 0; // y좌표가 음수이면 2, 아니면 0 return 1 + ((xParam | yParam) ^ (yParam >> 1)); } }
    1. xParam | yParam: x좌표와 y좌표의 부호를 비트 OR 연산으로 결합 예를 들어, x가 양수이고 y가 음수일 경우 xParam은 0, yParam은 2이므로 0 | 2는 2가 된다.
    1. yParam >> 1: y좌표가 음수일 경우 2를 1비트 오른쪽으로 이동시켜서 2는 1로 변환 ^ (yParam >> 1): XOR 연산을 통해 두 값을 결합. 이 연산은 특정 조합에서 사분면 번호를 결정하는 데 사용
    1. 1 + (...): 마지막으로 1을 더하여 최종 사분면 번호를 반환 사분면 번호는 1부터 시작하므로, 비트 연산 결과에 1을 더한다.
    Share article

    silver

    RSS·Powered by Inblog