문제 타임

다양한 문제를 풀어봅시다.

#1 가위바위보 게임

조건 : 1. 사용자 입력은 '가위', '바위', '보', '종료' 4가지만 존재합니다. 2. 입력 후 사용자의 입력 값, 컴퓨터의 값 결과 값 3가지를 출력합니다. ex) 가위바위보 : 가위 사용자 : 가위, 컴퓨터 : 보, 결과 사용자 승 (사용자 패)

참고 풀이

# -*- coding: UTF-8 -*-
#가위바위보 
import random
pc_value = random.randrange(1,4)
#1:가위 > 2:바위 > 3:보 > 1
user_value = input('1:가위, 2:바위, 3:보 숫자를 입력하세요 : ')
if(user_value.isnumeric()) :
    user_value = int(user_value)
    user_str = '가위'
    if(user_value == 2) :
        user_str = '바위'
    elif(user_value == 3) :
        user_str = '보'
    pc_str = '가위'
    if(pc_value == 2) :
        pc_str = '바위'
    elif(pc_value == 3) :
        pc_str = '보'
#1:가위 > 2:바위 > 3:보 > 4:가위 
    if(user_value == 3) :
        if(pc_value == 1) :
            pc_value = 4
    if(pc_value == 3) :
        if(user_value == 1) :
            user_value = 4
    if(pc_value < user_value) :
        print('사용자 승 ! 사용자 : ', user_str, ' 컴퓨터 :',pc_str)
    elif(pc_value == user_value):
        print('무승부 ! 사용자 : ', user_str, ' 컴퓨터 : ',pc_str)
    else :
        print('사용자 패배 ! 사용자 : ', user_str, ' 컴퓨터 : ',pc_str)
else :
    print('숫자로 입력해주세요!!')

#2 가위바위보 게임

조건 : 1. 사용자는 100%의 확률로 승리 합니다. 나머지는 동일합니다.

참고풀이

# -*- coding: UTF-8 -*-
value_str = ['보', '가위', '바위', '보']
user_value = int(input('1:가위, 2:바위, 3:보 숫자를 입력하세요 : '))
pc_value = user_value - 1
print("사용자 승 사용자 : ", value_str[user_value], " 컴퓨터 : ", value_str[pc_value] )

#3 가위바위보 게임

조건 : 1. 사용자는 10%의 확률로 승리 합니다. 나머지는 동일합니다.

참고 풀이

# -*- coding: UTF-8 -*-
import random
winner = [True, False, False, False, False, False, False, False, False, False]
random.shuffle(winner)
value_str = ['보', '가위', '바위', '보', '가위']
count = 0;
pc_value = 0
while True: 
    user_value = int(input('1:가위, 2:바위, 3:보 숫자를 입력하세요 : '))
    if(winner[count]) :
        #사용자 승리
        pc_value = user_value - 1
        print("사용자 승 사용자 : ", value_str[user_value], " 컴퓨터 : ", value_str[pc_value] )
    else:
        #PC 승리 
        win_draw = random.randrange(0,2)
        if(win_draw == 0) :
            #무승부
            pc_value = user_value
            print("무승부 사용자 : ", value_str[user_value], " 컴퓨터 : ", value_str[pc_value] )
        else :
            #사용자 패배 
            user_value = pc_value + 1
            print("사용자 패배 사용자 : ", value_str[user_value], " 컴퓨터 : ", value_str[pc_value] )
    if(count == 9) :
        count = 0
    else :
        count += 1

#4 야구 게임

게임의 흐름 임의의 숫자 3자리 숫자를 미리 설정합니다. (중복되지 않은 숫자) 394(가능), 904(가능), 024(불가능 0이 시작 값), 233(불가능 중복), 333(불가능 중복) 사용자가는 3자리 숫자를 입력합니다. 사용자의 입력한 값이 위치와 값이 일치 : S 위치는 다르지만 값이 일치 : B 존재하지 않는 값을 입력 : O ex) 임의의 숫자 536 사용자 입력 >>> 350 출력 <<< 2B (값이 3,5 로 일치하지만 위치가 다르다) 사용자 입력 >>> 501 출력 <<< 1S (5의 위치와 값이 같다) 사용자 입력 >>> 941 출력 >>> O (일치하는 값이 하나도 없다)

조건 : 1. 사용자는 3자리 숫자를 입력한다. 2. 입의의 숫자와 같은 숫자를 입력하면 종료 된다. 3. 1000을 입력하면 종료된다.

참고 풀이

# -*- coding: UTF-8 -*-
# 숫자 3자리를 출제한다. 
# 사용자 입력 값 3자리 수 를 받는다. 
import random
number = [0,1,2,3,4,5,6,7,8,9]
random.shuffle(number)
#FIXME 이 앞자리에 있을 수 있음!!! 
quizNum = number[:3]
print(quizNum)
while True:
    userInput = input('3자리 수를 입력하세요.')
    if(not userInput.isnumeric()) :
        #숫자 형태가 아닐 때 들어옵니다.
        print(' 숫자 형태만 입력하세요! ')
        continue
    if(userInput == '1000') :
        print('종료!!')
        break
    first = userInput[0]
    second = userInput[1]
    third = userInput[2]
    first = int(first)
    second = int(second)
    third = int(third)
    #자리와 숫자가 같다 S, 숫자가 같다 B, 같은 숫자가 없다 O
    #ball 찾는다 in quizNum
    ballCount = 0
    strikeCount = 0
    if(first in quizNum) :
        ballCount += 1
    if(second in quizNum) :
        ballCount += 1
    if(third in quizNum) :
        ballCount += 1
    #s 찾는다. 
    if(first == quizNum[0]) :
        strikeCount += 1
        ballCount -= 1
    if(second == quizNum[1]) :
        strikeCount += 1
        ballCount -= 1
    if(third == quizNum[2]) :
        strikeCount += 1
        ballCount -= 1        
    if(strikeCount == 3) :
        print('축하합니다.')
        break
    elif(ballCount > 0 or strikeCount > 0):
        print(strikeCount, 'S ,', ballCount, 'B ')
    else :
        print(' Out 입니다. ')

#5 식당 주문 프로그램

어느 식당의 메뉴판 입니다.

주문이 완료 되면 주문 확인을 하고 총 결제 금액을 보여주는 프로그램을 작성하세요.

조건 : 1. 주문의 개 수 제한은 없습니다. 2. 주문에 도움을 주는 기능은 각자 만들면 됩니다. 3. 딕셔너리를 잘 활용해주세요.

#6 수강생 리스트를 활용해서 서울시에 살고있는 사람을 구하세요.

#7 수강생 리스트에서 몇 가지의 취미가 있고, 같은 취미를 가진 사람끼리 골라내세요.

#8 수강생 리스트를 활용해서 키와 값을 입력받아 해당하는 사람을 구하세요.

ex) >>> 어떤 항목을 선택 하시겠습니까? <<< 나이 >>> 값은 얼마 입니까? <<< 38 >>> [김민철, 황용훈]

ex2) >>> 어떤 항목을 선택 하시겠습니까? >>> 1. 나이, 2. 직업, 3. 취미, 4. 목표, 5. 음식, 6. 장비, 7 나라 <<< 7 >>> 값은 얼마 입니까? <<< 네델란드 >>> [김대성, 박미지, 김민철]

Last updated