⭐ 문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/77885
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
⭐ 풀이 코드
def solution(numbers):
answer = []
for n in numbers:
# 짝수일 경우
if n%2 == 0:
# 바로 다음에 오는 수가 답
answer.append(n+1)
# 홀수일 경우
else:
temp = '0' + bin(n)[2:]
idx = temp.rfind('0') # 오른쪽부터 문자찾기
temp = list(temp)
# 가장 마지막에 나오는 0을 1로 변환
# 그 다음 나오는 1을 0으로 변환
temp[idx] = '1'
temp[idx+1] = '0'
temp = ''.join(temp)
num = int(temp, 2) # 2진수 -> 10진수
answer.append(num)
return answer
'Python > Programmers' 카테고리의 다른 글
[프로그래머스/Python] Lv 2. 큰 수 만들기 (0) | 2023.04.23 |
---|---|
[프로그래머스/Python] Lv1. 성격 유형 검사하기 (0) | 2023.04.21 |
[프로그래머스/Python] Lv 1. 공원산책 (2) | 2023.04.21 |
[프로그래머스/Python] Lv 0. 로그인 성공? (0) | 2023.04.18 |
[프로그래머스/Python] Lv 1. 대충 만든 자판 (0) | 2023.04.18 |