본문 바로가기

Job Wanted/코테 - 프로그래머스

[미완][프로그래머스] 코딩테스트 연습 > 코딩테스트 입문 > 숨어있는 숫자의 덧셈 (2)

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#

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

728x90
반응형