프로그래머스 파이썬 기초 트레이닝 :: 배열의 길이를 2의 거듭제곱으로 만들기
문제 설명
프로그래머스 URL
https://school.programmers.co.kr/learn/courses/30/lessons/181857
프로그래머스 코딩 카테고리
코딩 기초 트레이닝
Day 20 - 배열의 길이를 2의 거듭제곱으로 만들기
Lv.0
문제 내용
정수 배열 arr이 매개변수로 주어집니다. arr의 길이가 2의 정수 거듭제곱이 되도록 arr 뒤에 정수 0을 추가하려고 합니다. arr에 최소한의 개수로 0을 추가한 배열을 return 하는 solution 함수를 작성해 주세요.
arr result
[1, 2, 3, 4, 5, 6] [1, 2, 3, 4, 5, 6, 0, 0]
[58, 172, 746, 89] [58, 172, 746, 89]
문제이해
1. 배열의 길이를 2의 제곱으로 만들어야함
-> len 활용하고, 2의 제곱확인은 len(arr) / 2 로 체크
2. 부족하다면, 부족한 만큼 [0]으로 채워야함
-> [0] * 부족한 배열길이 만큼
-> 배열 + 연산으로 부족한만큼 합치기
-----------------------------------
코드 1
배열 길이만큼 바로 제곱하기
def solution(arr):
a = 1
b = len(arr)
while a < b :
a *= 2
return arr + [0] * (a-b)
while문을 돌아가는 a, b를 출력했을때 아래와 같이 나온다.
코드 2
제곱의 수를 체크하기
def solution(arr):
count = 0
length = len(arr)
while length > 1:
length = length / 2
count += 1
return arr + [0] * (2 ** count - len(arr))
댓글
댓글 쓰기