[COS PRO 1급] 1차 문제9) 계단 게임

아현·2023년 8월 2일
0

Algorithm

목록 보기
374/400
post-custom-banner

연습문제


계단 게임


두 학생 A와 B는 계단 게임을 하였습니다.
계단 게임의 규칙은 아래와 같습니다.

  1. 계단 제일 아래에서 게임을 시작합니다. (0번째 칸)
  2. 가위바위보를 합니다.
  3. 이기면 계단 세 칸을 올라가고, 지면 한 칸을 내려가고, 비기면 제자리에 있습니다.
  4. 계단 제일 아래에서 지면 제자리에 있습니다.
  5. 2~4 과정을 열 번 반복합니다.

A와 B가 계단 게임을 완료한 후에, A가 계단 위 몇 번째 칸에 있는지 파악하려고 합니다.
A와 B가 낸 가위바위보 기록이 순서대로 들어있는 배열 recordA와 recordA의 길이 recorrdA_len, recordB, recordB의 길이 recordB_len이 매개변수로 주어질 때, 게임을 마친 후의 A의 위치를 return 하도록 solution 함수를 작성했습니다. 그러나, 코드 일부분이 잘못되어있기 때문에, 몇몇 입력에 대해서는 올바르게 동작하지 않습니다. 주어진 코드에서 한 줄만 변경해서 모든 입력에 대해 올바르게 동작하도록 수정하세요.

□ 매개변수 설명

A와 B가 낸 가위바위보 기록이 순서대로 들어있는 리스트 recordA와 recordB가 매개변수로 주어집니다.
recordA와 recordB의 원소는 0, 1, 2중 하나이고 순서대로 가위, 바위, 보를 의미합니다.
recordA와 recordB의 길이는 10입니다.

□ return 값 설명

solution 함수는 계단 게임을 마친 후에 A가 계단 위 몇 번째 칸에 위치하는지를 return 합니다.
계단 제일 아래 칸은 0번째 칸입니다.




# -*- coding: utf-8 -*-
# UTF-8 encoding when using korean

def func(record):
	if record == 0:
		return 1
	elif record == 1:
		return 2
	return 0

def solution(recordA, recordB):
	cnt = 0
	for i in range(len(recordA)):
		if recordA[i] == recordB[i]:
			continue
		elif recordA[i] == func(recordB[i]):
			cnt = cnt + 3
		else:
			if cnt > 0: #계단은 0칸 부터
				cnt = cnt - 1
	return cnt
profile
For the sake of someone who studies computer science
post-custom-banner

0개의 댓글