본문 바로가기
Algorithm/Programmers

[Algorithm] 프로그래머스 - 두 정수 사이의 합

by 홍월이_ 2022. 12. 16.

시작하며...

알고리즘 문제를 직접 풀어보고 풀이를 정리하고 더 나은 풀이를 찾아보기 위한 내용을 정리합니다.

몇 문제를 풀고 다른 사람들의 풀이를 보다보니 개발 시작을 Java로 시작해서 그런지 아직 List Comprehension을 이용하는 부분이 많이 약하다고 느껴졌습니다. 그런 부분들도 추가적으로 정리해보도록 하겠습니다.

 

[Level 1] 두 정수 사이의 합 구하기

 

프로그래머스

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

programmers.co.kr

 

문제 설명

두 정수 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의 대소관계는 정해져있지 않습니다.

입출력 예

a b return
3 5 12
3 3 3
5 3 12

 

My Solution

def solution(a, b):
    answer = ''
    if b >= a:
        for i in range(a, b+1):
            answer += i
    else:
         for i in range(b, a+1):
            answer += i
    return answer

range를 활용해서 a부터 b까지 반복문을 돌려서 그 값을 정답에 더해주는 방법으로 문제를 풀이하였습니다.

그때, b가 a보다 더 큰 경우 Error가 발생해서 그런 경우의 조건을 추가해주었습니다.

 

More Solution

def solution(a, b):
    answer = sum(range(min(a,b),max(a,b)+1))
    return answer

풀이 방법은 같지만 List Comprehension을 활용해서 한줄로 정리한 누군가의 풀이입니다. 

 

출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges

댓글