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

    [JAVA 문제 풀이] 351. 2개 이하로 다른 비트

    프로그래머스 (77885)
    Stupefyee's avatar
    Stupefyee
    Jun 30, 2025
    [JAVA 문제 풀이] 351. 2개 이하로 다른 비트
    Contents
    내가 작성한 코드
    school.programmers.co.kr
    https://school.programmers.co.kr/learn/courses/30/lessons/77885
    notion image
     

    내가 작성한 코드

    class Solution { public long[] solution(long[] numbers) { long[] answer = new long[numbers.length]; // 짝수: n+1이 항상 비트 1개만 다름 // 홀수: n의 0이 처음 나오는 위치를 1로, 그 오른쪽 1을 0으로 바꿔주면 비트 2개만 다름 for (int i = 0; i < numbers.length; i++) { long n = numbers[i]; // ~n: n의 비트를 반전 // lowestOneBit(): 비트의 가장 오른쪽 1만 남기고 0으로 만들기 // >> 1: 비트를 오른쪽으로 한칸 이동 answer[i] = n % 2 == 0 ? n + 1 : n + (Long.lowestOneBit(~n) >> 1); } return answer; } }
    Share article
    Contents
    내가 작성한 코드

    stupefyee

    RSS·Powered by Inblog