//구글콘솔 광고 추가가
728x90
반응형

테스트 케이스 추가

numbers(long[]) Return
[1001, 337, 0, 1, 333, 673, 343, 221, 898, 997, 121, 1015, 665, 779, 891, 421, 222, 256, 512, 128, 100] [1002, 338, 1, 2, 334, 674, 347, 222, 899, 998, 122, 1019, 666, 781, 893, 422, 223, 257, 513, 129, 101]
2개 이하로 다른 비트 문제

내 코드
using System;
using System.Linq;
using System.Collections.Generic;

//+6
public class Solution {
    public long[] solution(long[] numbers) {
        long[] answer = new long[numbers.Length];
        for (int i = 0; i < numbers.Length; i++)
        {
            string numStr = Convert.ToString(numbers[i], 2);
            int startIndex = numStr.IndexOf("1");

            int zeroPoint = numStr.LastIndexOf("0");
            if (zeroPoint == -1)
            {
                string sub = numStr.Substring(startIndex+1);
                numStr = "10" + sub;
            }
            else
            {
                char[] chArr = numStr.ToCharArray();
                chArr[zeroPoint] = '1';
                if(zeroPoint +1 < numStr.Length) 
                    chArr[zeroPoint+1] = '0';
                numStr = new string(chArr);
            }
            answer[i] = Convert.ToInt64(numStr, 2);
        }
        return answer;
    }
}
728x90
반응형

+ Recent posts