<로직 고민>
# 오 개인과제로 가위바위보 함수 만들었었는데...!!!
# 근데 난 이겼습니다 졌습니다 판별하는 함수였고
# 이거는 이기는 수를 반환해야 하는군
# 조건문을 걸고 answer 변수에 이기는 값 넣어보자!
# 해당 인덱스의 값을 바꿔치기 하면 되려나 그럼 for문도 필요하네
- 1번째 시도
def solution(rsp):
answer = ''
for i, answer in enumerate(rsp):
if rsp[i] == '0':
answer = '5'
elif rsp[i] == '2':
answer = '0'
else:
answer = '2'
return answer
a = '2'
b = '205'
print(solution(a))
print(solution(b))
# 출력화면
# 0
# 2
- 뭔가 아닌 거 같다는 생각은 있었지만 일단 실행해봤다
- 숫자가 여러 개일 때 문제군
def solution(rsp):
answer = ''
for i, answer in enumerate(rsp):
if rsp[i] == '0':
answer += '5'
elif rsp[i] == '2':
answer += '0'
elif rsp[i] == '5':
answer += '2'
return answer
a = '2'
b = '205'
print(solution(a))
print(solution(b))
# 출력화면
# 20
# 52
- answer에 값 넣을 때 = 가 아니리 += 로 바꿔보았는데 산으로 간다....~~
def solution(rsp):
answer = ''
for i in range(len(rsp)):
if rsp[i] == '0':
rsp.replace(rsp[i], '5')
elif rsp[i] == '2':
rsp.replace(rsp[i], '0')
elif rsp[i] == '5':
rsp.replace(rsp[i], '2')
return rsp
a = '2'
b = '205'
print(solution(a))
print(solution(b))
# 출력화면
# 2
# 205
- replace() 메서드를 생각해냈는데 뭔가 또 이상하다...
- 결국 힌트를 보기로 했다...
- 내가 위에서 썼던 거랑 비슷한데 난 쓸데없이 뭔갈 많이 추가했군 역시 아직은 어느 때에 뭘 써야 하는지 모르는 거 같다
<완성한 코드>
def solution(rsp):
answer = ''
for i in rsp:
if i == '0':
answer += '5'
elif i == '2':
answer += '0'
elif i == '5':
answer += '2'
return answer
a = '2'
b = '205'
print(solution(a))
print(solution(b))
# 출력화면
# 0
# 052
<다른 사람 풀이>
- 천재풀이1
def solution(rsp):
d = {'0':'5','2':'0','5':'2'}
return ''.join(d[i] for i in rsp)
- 오...내가 쓰기엔 이해가 잘 안 가지만 짧으니 좋아보인다....ㅅ
- 천재풀이2
def solution(rsp):
rsp =rsp.replace('2','s')
rsp =rsp.replace('5','p')
rsp =rsp.replace('0','r')
rsp =rsp.replace('r','5')
rsp =rsp.replace('s','0')
rsp =rsp.replace('p','2')
return rsp
- 중간에 이렇게 하려고도 했었는데 원하는 값이 안 나왔었다 아래와 같은 이유로...
- 천재풀이3
def solution(rsp):
return rsp.translate(str.maketrans('025', '502'))
- 이런 방법..? 이런 메서드도 있군...!!!!