728x90
문제 (출처 : <이것이 코딩 테스트다>)
제출한 코드
class character:
def __init__(self):
self.N = None
self.N_MIN = 10
self.N_MAX = 99999999
def inputValue(self):
try:
N = int(input())
return N
except ValueError:
print("정수형만 입력하세요")
return self.inputValue()
except:
print("입력 에러")
return self.inputValue()
def isEvenNumber(self, value):
return True if len(str(value))%2==0 else False
def validateNumber(self, value):
return value>=self.N_MIN and value<=self.N_MAX
def validateScore(self):
N = self.inputValue()
if not(self.isEvenNumber(N)):
print("짝수 개수로 입력하세요.")
return self.validateScore()
if not(self.validateNumber(N)):
print(str(self.N_MIN)+" 이상 "+str(self.N_MAX)+" 이하의 값을 입력하세요.")
return self.validateScore()
return str(N)
def inputNowScore(self):
self.N = self.validateScore()
class game:
def __init__(self):
self.user = None
def sumList(self, value):
score = 0
for v in value: score+=int(v)
return score
def spacialMove(self):
mid = len(self.user.N)//2
left_score = self.sumList(list(self.user.N[:mid]))
right_score = self.sumList(list(self.user.N[mid:]))
return "LUCKY" if left_score==right_score else "READY"
def gameStart(self):
self.user = character()
self.user.inputNowScore() # 현재 캐릭터 점수를 문자열로 받아옴
print(self.spacialMove())
a =game()
a.gameStart()
문제 풀이
🔆문제 요약
💡 입력받은 캐릭터의 점수 N을 반으로 갈라 각각 왼쪽과 오른쪽을 합했을 때 기술을 쓸 수 있는지 없는지 구해라.
- input : 현재 캐릭터 점수 N
- output
- 기술을 쓸 수 있을 때 : LUCKY
- 기술을 쓸 수 없을 때 : READY
- 조건
- N의 자릿수는 항상 짝수임
- 자릿수를 기준으로 반으로 나누어 왼쪽과 오른쪽의 합이 같아야 함(=기술을 쓸 수 있음)
🔆문제 풀이
- input
- N은 길이가 짝수
- N은 정수
- N은 10이상, 99999999이하
- 문자열로 입력받고 반으로 자른 뒤 각각 왼쪽과 오른쪽을 합함
- 같은 지 확인하고 output
🔆기능 사항
- 캐릭터 클래스
- def inputValue() :
- try~except 사용해서 문자열 거르기
- def isEvenNumber(value) : 입력받은 값이 짝수면 true 반환
- def validateNumber(value) : min, max를 만족하는 수일 때 true 반환
- def validateScore() : 유효한 점수를 입력 받기 위한 클래스, N 반환
- def inputNowScore() : 유효한 점수를 저장함
- def inputValue() :
- 게임 클래스
- def gameStart()
- 캐릭터 클래스를 생성해서 현재 캐릭터 점수 입력받기
- def spacialMove() : 필살기를 쓸 수 있는 지
- def sumList(value) : 문자열로 이루어진 리스트들을 정수형으로 바꿔 모두 합함
- 왼쪽 점수와 오른쪽 점수를 합하기 위함
- def gameStart()
'python > 23년도 겨울 방학 코딩 스터디' 카테고리의 다른 글
[이코테] part 3_3주차_p.323 문자열 압축 (3) (1) | 2023.02.01 |
---|---|
[이코테] part 3_3주차_p.322 문자열 재정렬 (2) (0) | 2023.02.01 |
[이코테] part 2_2주차_p.201 떡볶이 떡 만들기 (0) | 2023.02.01 |
[이코테] part 2_3주차_p.99 1이 될 때까지 (0) | 2023.02.01 |
[이코테] part 2_1주차_p.182 두 배열의 원소 교체 (0) | 2023.01.17 |