[Python]_숫자 야구: 숫자 3개 뽑기

hanseungjune·2022년 6월 15일
0

Python

목록 보기
35/38

풀이

from random import randint


def generate_numbers():
    numbers = []

    # 코드를 작성하세요.
    i = 0
    while i < 3:
        numbers.append(randint(0,9))
        i += 1
    
    print("0과 9 사이의 서로 다른 숫자 3개를 랜덤한 순서로 뽑았습니다.\n")
    return numbers

print(generate_numbers())

간만에 풀어서 머리가 좀 안돌아가는 상태였다 ㅎㅅㅎ 그래서 일단 무작정 3개를 뽑아보자는 생각으로 알고리즘을 짰고, 정답은 맞췄지만 아쉬운 코드다.

모범답안

from random import randint


def generate_numbers():
    numbers = []

    while len(numbers) < 3:
        num = randint(0, 9)
        if num not in numbers:
            numbers.append(num)

    print("0과 9 사이의 서로 다른 숫자 3개를 랜덤한 순서로 뽑았습니다.\n")
    return numbers
    
print(generate_numbers())

앞으로 배열의 요소가 몇개까지만 생기면 반복을 멈춰야 겠다라는 생각은

while len(number) < 3:

으로 생각하고 알고리즘을 짜야겠다. 저번에 len() 봤었는데 은근 안익숙하다.

그리고 중복으로 들어갈 수도 있다는 걸 내가 고려하지 못했다. if randint(0, 9) not in numbers:를 고려했어야 했는데 이를 간과했다. 까먹지말자! 그리고 배열 추가는... append()

아무튼 2가지를 놓쳐서 아쉽다!

profile
필요하다면 공부하는 개발자, 한승준

0개의 댓글