(2의) 제곱수인지 확인
실패 1
def sol(n):
# return 1 if (n ** 0.5).is_integer() else 2
# is_integer : 정수인지 확인
return 1 if (n**0.5) % 1 == 0 else 2
실패 2
def solution(arr):
# 2의 제곱인지 확인
while True :
if len(arr) ** (0.5).is_integer() : // (0.5) % 1 == 0
break
arr.append(0)
return arr
위 방법으로 하니까 [1,2,3,4,5,6,0,0] 이 아니라, 길이가 2의 제곱일때 멈춰야 하는데 안멈추고 한 번 더 가서 [1,2,3,4,5,6,0,0,0] 이 출력됨
정답 코드
다른 사람 코드 1
def solution(arr):
answer = [2**i for i in range(11)]
while len(arr) not in answer :
arr.append(0)
return arr
다른 사람 코드 2
def solution(arr):
l = len(arr)
while bin(l).count('1') != 1:
l += l & (-l)
return arr + [0] * (l - len(arr))
다른 사람 코드 3
import math
def solution(arr):
answer = [2 ** i for i in range(11)] # arr의 길이를 고려하면 기것해야 10개
while not math.sqrt(len(arr)).is_integer() :
arr.append(0)
return arr
'코딩 테스트 > 프로그래머스' 카테고리의 다른 글
[Python] 프로그래머스 lv.2 의상 (1) | 2024.11.25 |
---|---|
[Python] 프로그래머스 lv.0 문자열 묶기 (0) | 2024.11.25 |
[Python] 프로그래머스 lv.0 세 개의 구분자 (0) | 2024.11.19 |
[Python] 프로그래머스 lv.0 문자열 잘라서 정렬하기 (0) | 2024.11.11 |
[Python] 프로그래머스 lv.0 공백으로 구분하기 2 (0) | 2024.11.10 |