logo
Search검색어를 포함하는 게시물들이 최신순으로 표시됩니다.
    Table of Contents
    [Python] Quiz 5

    이미지 보기

    [Python] Quiz 5

    • 21.07.14 작성

    • 읽는 데 3

    TOC

    Quiz 5

    1. 문제

    당신의 학교에서는 파이썬 코딩 대회를 주최합니다. 참석률을 높이기 위해 댓글
    이벤트를 진행하기로 하였습니다. 댓글 작성자들 중에 추첨을 통해 1명은 치킨, 3명은
    커피 쿠폰을 받게 됩니다. 조건1 : 편의상 댓글은 20명이 작성하였고 아이디는 1~20
    이라고 가정 조건2 : 댓글 내용과 상관 없이 무작위로 추첨하되 중복 불가 조건3 :
    random 모듈의 shuffle 과 sample 을 활용 (출력 예제) -- 당첨자 발표 -- 치킨
    당첨자 : 1 커피 당첨자 : [2, 3, 4] -- 축하합니다 -- (활용 예제) from random
    import * lst = [1, 2, 3, 4, 5] print(lst) shuffle(lst) # shuffle(lst) : lst 속
    개체의 순서를 섞겠다. print(lst) print(sample(lst,1)) # sample(lst,n) : lst에서
    sample로 n개만큼 뽑겠다.
    

    2. 나의 작성 코드

    from random import *
    comment = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
    shuffle(comment)
    
    chicken = comment[0]
    coffee = comment [1:4]
    
    print("-- 당첨자 발표 --\n치킨 당첨자 : " + str(chicken) + "\n커피 당첨자 : " + str(coffee))
    

    3. 모범 답안

    from random import *
    # users = [1, 2, 3, 4,...100]
    users = range(1, 21)  # 1부터 20까지 숫자를 생성
    print(type(users))  # 출력값 : <class 'range'>
    
    users = list(users)  # class를 list로 변경
    print(type(users))  # 출력값 : <class 'list'>
    
    print(users)
    shuffle(users)
    print(users)
    
    # 중복 당첨을 피하기 위해 한 번에 4명을 뽑는다.
    winners = sample(users, 4)
    
    print(" -- 당첨자 발표 -- ")
    print("치킨 당첨자 : {0}".format(winners[0]))
    print("커피 당첨자 : {0}".format(winners[1:4]))
    print(" -- 축하합니다 -- ")
    

    Reference

    profile

    FE Developer 박승훈

    노력하는 자는 즐기는 자를 이길 수 없다