PARA/03_Resources/R001_개발_레퍼런스(참고문서)/알고리즘/알고리즘 - 배열 만들기 2.md

알고리즘 - 배열 만들기 2

생각

  • l과 r 사이의 0과 5로 이루어진 모든 정수 구하기
  • 10 - 15
    • 5
    • 50
    • 55
    • 500
  • 3 56
    • 5
    • 50
    • 55
  • 3 433
    • 5
    • 50
    • 55
    • 500
    • 000
  • l과 r을 2진수로 변환하자
    • 5보다 작으면 0
    • 5보다 크면 1

결과

def to_05(k):
    return int(bin(k)[2:].replace('1', '5'))
 
def solution(l: int, r: int):
    ans = []
    k = 1
 
    while True:
        val = to_05(k)
        if val > r:
            break
        if val >= l:
            ans.append(val)
        k += 1
 
    return ans if ans else [-1]
  • bin 쓸 수 있어야함

더 좋은 답

def solution(l, r):
    answer = []
    for x in range(l, r + 1):
        s = str(x)
        if all(ch in ['0', '5'] for ch in s):
            answer.append(x)
    return answer or [-1]
  • all 쓸 수 있어야함

댓글

첫 번째 댓글을 남겨보세요.