---
description: 다양한 문제를 풀어봅시다.
---

# 문제 타임

## #1 가위바위보 게임&#x20;

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

참고 풀이

```python
# -*- 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 가위바위보 게임

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

참고풀이

```python
# -*- 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 가위바위보 게임&#x20;

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

참고 풀이

```python
# -*- 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을 입력하면 종료된다.

참고 풀이

```python
# -*- 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 식당 주문 프로그램&#x20;

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

| T1 | 소고기 쌀국수   | 7,000원  |
| -- | --------- | ------- |
| T2 | 소고기 매운쌀국수 | 7,500원  |
| P1 | 파인애플 볶음밥  | 8,000원  |
| P2 | 해물볶음면     | 8,500원  |
| Q1 | 월남쌈       | 12,000원 |

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

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

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

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

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

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

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