[python] 나도코딩 Quiz.1

박민주·2021년 5월 25일
0

파이썬

목록 보기
8/16
# Quiz) 친구들과 친목회를 하여 정기적으로 만남을 갖기로 하였다.
# 월 4회 친목회를 하는데 지금 코로나 시국이라,
	3번은 오프라인으로, 1번은 온라인으로 만나기로 하였음.
# 아래 조건에 맞는 오프라인 모임 날짜를 정해주는 프로그램을 작성하시오

# 조건1 : 랜덤으로 날짜를 뽑아야 함
# 조건2 : 월별 날짜는 다름을 감안하여 최소 일수인 28 이내로 정함
# 조건3 : 매월 1~5일까지는 각자 일정이 바빠서 제외

==>
달마다 1~5일을 제외시켜야하고, 28일 이내로 정해야 하므로
만날 수 있는 날짜를 5~28로 설정
from random import *
date = randint(5, 28)

print("오프라인 친목회 날짜는 매월 " + str(date) + "일로 선정!")

# Quiz) 사이트별로 비밀번호를 만들어주는 프로그램을 작성하시오

# 예) http://google.com

# 규칙1 : http:// 부분은 제외 => google.com
# 규칙2 : 처음 만나는 점(.) 이후 부분은 제외 => google
# 규칙3 : 남은 글자 중 처음 네자리 + 글자 갯수 + 글자 내 "e" 갯수 + "!"로 구성
url = "http://google.com"

#규칙1
domain = url.replace("http://", "") # google.com

#규칙2
domain = domain[:domain.index(".")] # google
# domain = domain.split(".")[0]

# 규칙3
pw = domain[:4] + str(len(domain)) + str(domain.count("e")) + "!"

print("{0}의 비밀번호는 {1} 입니다." .format(url, pw))
# http://google.com => http://google.com의 비밀번호는 goog61! 입니다.
# http://naver.com => http://naver.com의 비밀번호는 nave51! 입니다.
# http://daum.net => http://daum.net의 비밀번호는 daum40! 입니다.


# Quiz) 이벤트를 주최.
# 참석률을 높이기 위해 댓글 이벤트를 진행하기로 함
# 댓글 작성자들 중에 추첨을 통해 1명은 피자, 2명은 커피 쿠폰을 받게 됨
# 추첨 프로그램을 작성하시오.

# 조건1 : 편의상 댓글은 10명이 작성하였고 아이디는 1~10 이라고 가정
# 조건2 : 댓글 내용과 상관 없이 무작위로 추첨하되 중복 불가
# 조건3 : random 모듈의 shuffle 과 sample 을 활용

# (출력 예제)
# -- 당첨자 발표 --
# 치킨 당첨자 : 1
# 커피 당첨자 : [2, 3]
# -- 축하합니다 --
from random import *
# 1부터 16까지 숫자를 생성
users = range(1,11) # [1,2,3,4,5,6,7,8,9,10]

# class가 'range'로 되어있으니, list로 변경
print(type(users)) 
users = list(users)

# shuffle을 활용하여 숫자를 섞음
shuffle(users) # [2, 3, 4, 10, 7, 5, 1, 6, 8, 9]

# 중복 불가이므로, 1등과 2,3등을 sample을 활용하여 한번에 출력
winners = sample(users, 3) # [1,4,8]

# 문자열 포맷을 활용하여 0번째, 1부터 끝까지의 인덱스 구하기.
print("--당첨자 발표--")
print('치킨 당첨자 : {0}'.format(winners[0])) # [1]
print('커피 당첨자 : {0}'.format(winners[1:])) # [4,8]
print('-- 축하합니다 --')


# Quiz) 당신은 택시기사
# 15명의 승객과 매칭 기회가 있을 때, 총 탑승 승객 수를 구하는 프로그램을 작성하시오

# 조건1 : 승객별 운행 요소 시간은 3분 ~ 30분 사이의 난수로 정해짐.
# 조건2 : 당신은 소요 시간 3분 ~ 10분 사이의 승객만 매칭해야 함.

# (출력문 예제)
# [0] 1번째 손님 (소요시간 : 8분)
# [ ] 2번째 손님 (소요시간 : 20분)
# [0] 3번째 손님 (소요시간 : 3분)
# ...
# [ ] 50번째 손님 (소요시간 : 30분)

# 총 탑승 승객 : 2 명
from random import *

cnt = 0 # 총 탑승 승객 수

for i in range(1, 16): # 1 ~ 15명의 승객
    time = randrange(3, 31)
    if 3 <= time >= 10: # 3 ~ 10분 사이, (매칭 성공) 탑승 승객 수 증가
        print("[0] {0}번째 손님 (소요시간 : {1}분)".format(i, time))
        cnt += 1
    else: # 매칭 실패
        print("[ ] {0}번째 손님 (소요시간 : {1}분)".format(i, time))
print("총 탑승 승객 : {0} 명".format(cnt))

profile
개발공부

0개의 댓글