[프로그래머스] 파이썬 코딩테스트 연습 LV1(문자열을 정수로 바꾸기, 두 정수 사이의 합)

728x90

1. 문자열을 정수로 바꾸기

 

문제 설명

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

 

입출력 예

예를들어 str이 "1234"이면 1234를 반환하고, "-1234"이면 -1234를 반환하면 됩니다.
str은 부호(+,-)와 숫자로만 구성되어 있고, 잘못된 값이 입력되는 경우는 없습니다.

 

내 풀이

def solution(s):
    return int(s)

 

다른 사람 풀이 

(과하다고 생각은 들지만 공부하려면 이런 식으로 하는 게 맞을 거 같기도..)

def strToInt(str): 
    result = 0
    for idx, number in enumerate(str[::-1]):
        if number == '-':
            result *= -1
        else:
            result += int(number) * (10 ** idx)
    return result


# 아래는 테스트로 출력해 보기 위한 코드입니다.
print(strToInt("-1234"));

 

2. 두 정수 사이의 합

 

문제 설명
두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.
예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.

제한 조건
a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요.
a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다.
a와 b의 대소관계는 정해져있지 않습니다.

 

내 풀이

def solution(a, b):
    answer = 0
    if a <= b:    
        for i in range(a, b+1):
            answer += i
    else:
        for i in range(b, a+1):
            answer += i

    return answer

 

다른 사람 풀이

def adder(a, b):
    return sum(range(min(a, b), max(a, b)+1))

# 아래는 테스트로 출력해 보기 위한 코드입니다.
print( adder(3, 5))

 

def adder(a, b):
    return (abs(a-b)+1)*(a+b)//2

# 아래는 테스트로 출력해 보기 위한 코드입니다.
print( adder(3, 5))
728x90