문제
가위바위보를 while을 사용해서 만들어라
시도
if문을 이중구문으로 사용해서 만들면 된다
해결 및 문제점
비겼을 경우에 같은 걸 내는 문제점이 있음(computer) 비길때 break을 사용해서 게임을 끝내고 다시 게임을 시작하게 만들었다.
import random
options = ['가위', '바위', '보']
computer_choice = random.choice(options) #random.randint은 숫자만 가능하다. 문자일때 choice
while True:
user_input = input('가위, 바위, 보 중에서 골라주세요: ')
if user_input not in options: # 가위 , 바위 ,보 중 같은게 아닐경우 다시
print('다시 입력하세요.')
continue # 처음부터 다시 입력
if user_input == computer_choice: # 코드의 가독성을 위해 비겼다 를 맨먼저 사용
print('비겼습니다.')
break
elif user_input == '가위': # 여기서 부터 복붙
if computer_choice == '바위':
print('졌습니다.')
break
else:
print('이겼습니다!')
break
elif user_input == '바위':
if computer_choice == '보':
print('졌습니다.')
break
else:
print('이겼습니다!')
break
elif user_input == '보':
if computer_choice == '가위':
print('졌습니다.')
break
else:
print('이겼습니다!')
break
print(f'당신은 {user_input}를 냈습니다.')
print(f'컴퓨터는 {computer_choice}를 냈습니다.')
문제



시도
- 문제에서는 영수증과 총금액을 비교하고 싶어한다. 그러면 총금액과 물건의 종류의 수를 input값으로 받아준다.
- 예제 입력을 보면 물건의 갯수 * 가격 을 해줘야한다.
- 예제 에서는 총 4번을 곱했다. 물건의 종류도 4개이다.
- 곱한 값 + total을 해주면 된다.
- total 값과 총금액이 같으면 YSE 아니면 NO
x = int(input())
n = int(input())
total = 0
for i in range(0,n):
a,b= map(int,input().split())
total += a*b
if total == x:
print("YES")
else:
print("NO")
문제


시도
- 문제에서 n명의 학생들 중 k명은 상을 받을 것 이다 근데 커트라인 점수를 구해라 여기서 가장낮은 점수가 커트라인이다.
- 예제 입력과 출력을 보면 5명 중에 2명 에게 상을 줄 것이고 커트라인 점수는 98점이다 라고 설명한다.
- 점수는 뒤죽박죽이기 때문에 정렬을 사용해서 높은 순이든 낮은 순이든 정렬을 해주면 된다.
- 입력 값에 2를 보자 2를 사용해 커트라인을 정해야한다. 만일 정렬이 되어있는 값에 거꾸로 슬라이싱 을 한다면?
- 처음 부터 2를 지정한다면 0,1,2,3,4 로 시작하기 때문에 뒤집어서 (-1) 1 2 를 하면 손쉽게 값을 구할 수있다.
n,k = map(int,input().split())
x = list(map(int,input().split()))
x.sort()
a= x[-k]
print(a)
배운점
코드를 보면 x.sort() 를 하면 작은수 부터 76,85,93,98,100 나온다. 여기서 -k를 하면 뒤에서부터 (1,2) (100,98) 커트라인 값을 찾을 수 있다. 처음엔 sort를 큰값부터 정렬하고 -1값을 줘서 찾을려고 했는데 k에 -를 주면 뒤집어지는지 처음 알았다.
'알고리즘' 카테고리의 다른 글
2023-05-19 프로그래머스 뿌시기 0레벨 (0) | 2023.05.21 |
---|---|
2023-04-28 가위바위보 3판2승 (0) | 2023.04.30 |
2023-04-26 최소직사각형 (0) | 2023.04.26 |
2023-04-25 알고리즘 문자열,배열(중복제거) (0) | 2023.04.25 |
2023-04-24 알고리즘 while,알고리즘 (0) | 2023.04.24 |
댓글