728x90
반응형
코딩테스트 연습 > 코딩테스트 입문 > 숨어있는 숫자의 덧셈 (2)
정답율은 77%이지만, 문제 해결에 성공한 사람의 숫자는 그렇게 많지 않다.
내가 맞힌 정답::
.
잘못 작성한 답 (1) ::
이 코드는, 10개의 테스트 케이스 중에는 9개가 맞다. 근데 딱 한개가 맞지 않는데, 그게 뭔지 도저히 모르겠다.
한글자인 경우, 두글자인 경우, 숨어있는 숫자가 없는 경우, 숫자만 존재하는 경우를 따로 추가를 해봐서 테스트를 해봤는데, 전부 통과했다.
def solution(my_string):
answer = 0
idx = 0
b = list(my_string)
d = ['a', 'a', 'a', 'a', 'a', 'a']
c = len(b)
b2 = b + d
l = len(b)
print(b)
if c == 1:
if my_string.isdigit() == True:
answer += int(my_string)
elif c == 2:
if (my_string[0].isdigit() == True) and (my_string[1].isdigit() == True):
answer += int(my_string)
elif (my_string[0].isdigit() == True) and (my_string[1].isdigit() == False):
answer += int(my_string[0])
elif (my_string[0].isdigit() == False) and (my_string[1].isdigit() == True):
answer += int(my_string[1])
else:
while idx < l:
if b[idx].isdigit() == False:
idx += 1
continue
elif b[idx].isdigit() == True:
if b[idx+1].isdigit() == False:
answer += int(b[idx])
idx += 1
elif b[idx+1].isdigit() == True:
if b[idx+2].isdigit() == False:
answer += int(b[idx])*10 + int(b[idx+1])
idx += 2
elif b[idx+2].isdigit() == True:
answer += int(b[idx])*100 + int(b[idx+1])*10 + int(b[idx+2])
idx += 3
return answer
https://school.programmers.co.kr/learn/courses/30/lessons/120864#
728x90
반응형
'Job Wanted > 코테 - 프로그래머스' 카테고리의 다른 글
[프로그래머스] 코딩테스트 연습 > 코딩테스트 입문 > 369게임 (0) | 2022.12.28 |
---|---|
[프로그래머스] 코딩테스트 연습 > 코딩테스트 입문 > 다음에 올 숫자 (0) | 2022.12.18 |
[프로그래머스] 코딩테스트 연습 > 코딩테스트 입문 > 컨트롤 제트 (0) | 2022.12.17 |
[프로그래머스] 코딩테스트 연습 > 코딩테스트 입문 > 치킨 쿠폰 (0) | 2022.12.17 |
[프로그래머스] 코딩테스트 연습 > 코딩테스트 입문 > 2차원으로 만들기 (1) | 2022.12.17 |