문자열을 정수로 바꾸기

수이·2025년 3월 10일
0

🟢 코드카타 / PYTHON

목록 보기
18/46
post-thumbnail

문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요.
문제링크

풀이
일단 문제를 읽자마자 띠용함
그냥 숫자열로 변환만 하면 되는 거 아닌가 싶어서 일단 넣어봤는데 정답처리가 됐다!

def solution(s):
    answer = int(s)
    return answer

너무 간단하게 끝나서 혹시 다른방법이 있을까 찾아봤다

다른사람 풀이

def solution(s):
    
    if s[0] == '-' :
        return -(int(s[1:]))
    elif s[0] == '+' :
        return int(s[1:])
    else :
        return int(s)
        
    return answer

맨 앞이 부호(+,-)로 시작하는 경우 1번 인덱스부터 시작하는 문자열을 int로 바꾸고 부호처리
부호가 없는경우 그냥 int형으로 변환

def solution(s):
    result = 0

    for idx, number in enumerate(s[::-1]):
        if number == '-':
            result *= -1
        elif number == '+':
            pass
        else:
            result += int(number) * (10 ** idx)

    return result

이 분 건 아직 잘 이해가 안 되긴 한데 다른 분 블로그에서 해설을 긁어왔다

enumerate() 로 얻게 된 인덱스를 이용하여 1의자리부터~n의자리까지 10의 제곱수만큼 곱하는 형식이다.
예로 "-1234" 라는 문자열이 주어졌다고 하자.
4321- 을 순회하게 될 것이다.

  • 먼저 4의 경우 4 * 10**0 = 4
    3의 경우 3 * 10 ** 1 = 30
    2의 경우 2 * 10 ** 2 = 200
    1의 경우 1 * 10 ** 3 = 1000
    => -1234

0개의 댓글

관련 채용 정보