반응형
Notice
Recent Posts
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

500error

[COS Pro 2급, Python] 4차 3번 : 획득 점수 구하기 도박은 안돼요. 본문

알고리즘/파이썬

[COS Pro 2급, Python] 4차 3번 : 획득 점수 구하기 도박은 안돼요.

Internal Server Error 2024. 1. 4. 21:36
반응형

문제

A와 B가 카드 게임을 할 때, 누가 더 많은 점수를 획득했는지, 또 획득한 점수는 몇 점인지 알아보려고 합니다. 게임 규칙은 다음과 같습니다.
  • 알파벳 a, b, c, d, e가 적힌 카드뭉치가 있습니다.
  • A와 B가 서로 번갈아 가면서 n장씩 카드를 뽑습니다.
  • 소유한 카드 점수를 합산합니다. 알파벳 카드 한 장당 a = 1점, b = 2점, c = 3점, d = 4점, e = 5점으로 점수를 계산합니다.
  • 점수가 높은 사람이 승리합니다.
게임에서 이긴 사람과 획득 점수를 구하기 위해 다음과 같이 프로그램 구조를 작성했습니다.

1. A와 B가 번갈아가며 가져간 카드를 각각 배열에 넣습니다.
2. A와 B가 각각 획득한 점수를 구합니다.
3. 획득한 점수가 큰 사람과 획득한 점수를 순서대로 배열에 담아 return 합니다.
 
뽑아야 하는 카드 개수 n, 카드를 나타내는 문자 배열 bundle, bundle의 길이 bundle_len이 매개변수로 주어질 때, 이긴 사람과 점수를 return 하도록 solution 함수를 작성하려 합니다. 위 구조를 참고하여 코드가 올바르게 동작할 수 있도록 빈칸에 주어진 func_a, func_b, func_c 함수와 매개변수를 알맞게 채워주세요.

 

 

 

 

 

 

 

 

code

def func_a(bundle, start):
	return bundle[start::2]

def func_b(score1, score2):
	if score1 > score2:
		return [1, score1]
	elif score2 > score1:
		return [2, score2]
	else:
		return [0, score1]

def func_c(bundle):
	answer = 0
	score_per_cards = {
		'a': 1,
		'b': 2,
		'c': 3,
		'd': 4,
		'e': 5
	}
	for card in bundle:
		answer += score_per_cards[card]
	return answer
    
    
def solution(n, bundle):
	a_cards = func_a(bundle, 0)[:n]
	b_cards = func_a(bundle, 1)[:n]
	a_score = func_c(a_cards)
	b_score = func_c(b_cards)
	return func_b(a_score, b_score)
    
    
    
n = 4
bundle = "cacdbdedccbb"
ret = solution(n, bundle)

print("solution 함수의 반환 값은", ret, "입니다.")
반응형
Comments