일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 책알남
- 경제
- 재테크
- C
- 채권
- 서평
- 독후감
- 독서
- algorithmTest
- 프로그래밍언어
- algorithmStudy
- JavaScript
- algorithmtraining
- 알고리즘공부
- 자바스크립트
- 주식
- 프로그래머스 알고리즘 공부
- 백준알고리즘
- 알고리즘트레이닝
- 자바
- 투자
- 알고리즘 공부
- Java
- 성분
- 지혜를가진흑곰
- 화장품
- C++
- 다독
- 책을알려주는남자
- 돈
Archives
- Today
- Total
탁월함은 어떻게 나오는가?
[Algorithm] 2개 이하로 다른 비트 ( Programmers / Python && JavaScript ) 본문
[Snow-ball]프로그래밍(컴퓨터)/Algorithm Training
[Algorithm] 2개 이하로 다른 비트 ( Programmers / Python && JavaScript )
Snow-ball 2024. 9. 1. 10:38반응형
문제 설명
양의 정수 x에 대한 함수 f(x)를 다음과 같이 정의합니다.
- x 보다 크고 x와 비트가 1~2개 다른 수들 중에서 제일 작은 수
예를 들어,
- f(2) = 3 입니다. 다음 표와 같이 2보다 큰 수들 중에서 비트가 다른 지점이 2개 이하이면서 제일 작은 수가 3이기 때문입니다.
- f(7) = 11 입니다. 다음 표와 같이 7보다 큰 수들 중에서 비트가 다른 지점이 2개 이하이면서 제일 작은 수가 11이기 때문입니다.
정수들이 담긴 배열 numbers 가 매개변수로 주어집니다. numbers 의 모든 수들에 대하여 각 수의 f 값을 배열에 차례대로 담아 return 하도록 solution 함수를 완성해주세요.
제한사항
- 1 <= numbers 의 길이 <= 100,000
- 0 <= numbers 의 모든 수 <= 10^15
입출력 예
문제 풀이
python:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
def solution(numbers):
result = []
for number in numbers:
if number % 2 == 0:
result.append(number + 1)
else:
binary = list('0' + format(number, 'b'))
for i in range(len(binary) - 2, -1, -1):
if binary[i] == '0' and binary[i + 1] == '1':
binary[i] = '1'
binary[i + 1] = '0'
break
result.append(int(''.join(binary), 2))
return result
|
cs |
javascript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
function solution(numbers) {
const numberList = [];
for (const number of numbers) {
if (number % 2 === 0) {
numberList.push(number + 1);
} else {
const binaryList = [...'0' + number.toString(2)];
const index = binaryList.lastIndexOf('0');
binaryList[index] = '1';
binaryList[index + 1] = '0';
const binary = binaryList.join('');
numberList.push(parseInt(binary, 2));
}
}
return numberList;
}
|
cs |
https://school.programmers.co.kr/learn/courses/30/lessons/77885?language=python3#
반응형
'[Snow-ball]프로그래밍(컴퓨터) > Algorithm Training' 카테고리의 다른 글
[Algorithm] 스킬트리 ( Programmers / JavaScript ) (0) | 2024.09.20 |
---|---|
[Algorithm] 이진 변환 반복하기 ( Programmers / Python && JavaScript ) (1) | 2024.09.05 |
[Algorithm] 괄호 회전하기 ( Programmers / Python & JavaScript ) (0) | 2024.08.28 |
[Algorithm] 연속 펄스 부분 수열의 합 ( Programmers / Python ) (1) | 2024.03.29 |
[Algorithm] 무인도 여행 ( Programmers / Python ) (1) | 2024.03.24 |
Comments