반응형
https://school.programmers.co.kr/learn/courses/30/lessons/181857
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
정수 배열 arr이 매개변수로 주어집니다. arr의 길이가 2의 정수 거듭제곱이 되도록 arr 뒤에 정수 0을 추가하려고 합니다. arr에 최소한의 개수로 0을 추가한 배열을 return 하는 solution 함수를 작성해 주세요.
def solution(arr):
cnt = 0
while len(arr) != 2 ** cnt:
if len(arr) == 2 ** cnt:
break
if len(arr) > 2 ** cnt:
cnt += 1
else:
chan = (2 ** cnt) - len(arr)
for _ in range(chan):
arr.append(0)
return arr
처음 시도 하니, 오류가 떳다.
곰곰히 생각해보니 2**0 == 1 이기 때문에 마지막 테스트에서 통과를 못했다. 즉, cnt를 0을 주고 시작해야 됬다.
최종코드
def solution(arr):
cnt = 0
while len(arr) != 2 ** cnt:
if len(arr) == 2 ** cnt:
break
if len(arr) > 2 ** cnt:
cnt += 1
else:
chan = (2 ** cnt) - len(arr)
for _ in range(chan):
arr.append(0)
return arr
'파이썬 이것저것 > 코테준비' 카테고리의 다른 글
[백준] 10813번: 공 바꾸기 (0) | 2023.05.31 |
---|---|
[Python] 프로그래머스 코드 처리하기 (0) | 2023.05.05 |
[Python] 프로그래머스 예산 (1) | 2023.01.28 |
[Python] 프로그래머스 부족한 금액 계산하기 (0) | 2023.01.03 |
[Python] 프로그래머스 과일 장수 (0) | 2023.01.01 |