[프로그래머스 / Level 1] 두 정수 사이의 합 (파이썬)

2022. 4. 19. 13:16·🎲 알고리즘 공부/프로그래머스

📝 문제

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

입출력 예시

3번째 케이스는 3 + 4 + 5 = 12가 되는 것이다.

 

https://programmers.co.kr/learn/courses/30/lessons/12912

 

코딩테스트 연습 - 두 정수 사이의 합

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

programmers.co.kr

 

 

🎨 풀이

💡 첫 번째 시도 = 성공

 

def solution(a, b):
                    # 큰 수 합에서 작은 수 합 빼는 방식
    if a == b :
        return a
    if a > b :
        n1 = a * (a + 1) // 2
        n2 = (b - 1) * b // 2
        return n1 - n2
    else :
        n1 = (a - 1) * a // 2
        n2 = b * (b + 1) // 2
        return n2 - n1

 

> a 와 b 대소관계에 따라 조건을 나눠둔 것이다.

1. a와 b가 같다면 둘 중 하나를 리턴해준다.

2. a가 b보다 크다면, 1부터 a까지 더해준 값에서 1부터 b까지 더해준 값을 뺀다. (시그마)

3. b가 a보다 크다면, 1부터 b까지 더해준 값에서 1부터 a까지 더해준 값을 뺀다.

 

💡 두 번째 시도 = 훨씬 간단한 ver.

 

def solution(a, b):
    answer = 0;
    a, b = min(a,b), max(a,b)
    
    for num in range(a,b+1):
        answer += num
    
    return answer

> 이 코드는 a에는 작은 수, b에는 큰 수가 들어가게 한 후 for문을 돌려서 차례대로 더해주는 코드다. 

 

 

끝~

 

 

⭐ 느낀점

 

> 첫번째 코드를 리뷰하다보니 다른 아이디어가 생각이 나서 해봤는데, 바로 통과가 되었다. 이런 맛에 알고리즘 문제 푸는건가 라는 생각이 좀 든다. 저 문제를 풀 당시에는 min(x,y) 이런걸 잘 활용을 못해서 코드가 저렇게 어려워졌나보다. 딱 보면 이해는 안가고 뭔가.., 별 찍기 같아보이는 코드인데 잘 바꾼 것 같다. 기분이 좋다. ㅎ_ㅎ 그리고 당분간은 시험도 많고 할일도 좀 많아서 연습문제를 계속 풀기로 했다. 아마 연습문제를 다 풀 것 같지는 않고 그래도 좀 쉽지 않았거나 창의적이였다고 생각하는 코드 위주로 해볼 생각이다. 파이팅~

 

'🎲 알고리즘 공부 > 프로그래머스' 카테고리의 다른 글

[프로그래머스 / Level 1] 문자열 내 p와 y의 개수 (파이썬)  (0) 2022.04.21
[프로그래머스 / Level 1] 문자열 내 마음대로 정렬하기 (파이썬)  (0) 2022.04.20
[프로그래머스 / Level 1] 나누어 떨어지는 숫자 배열 (파이썬)  (0) 2022.04.18
[프로그래머스 / Level 1] 같은 숫자는 싫어 (파이썬)  (0) 2022.04.17
[프로그래머스 / Level 1] [1차] 다트 게임 (파이썬) 🎯  (1) 2022.04.16
'🎲 알고리즘 공부/프로그래머스' 카테고리의 다른 글
  • [프로그래머스 / Level 1] 문자열 내 p와 y의 개수 (파이썬)
  • [프로그래머스 / Level 1] 문자열 내 마음대로 정렬하기 (파이썬)
  • [프로그래머스 / Level 1] 나누어 떨어지는 숫자 배열 (파이썬)
  • [프로그래머스 / Level 1] 같은 숫자는 싫어 (파이썬)
듬듬
듬듬
  • 듬듬
    두드림
    듬듬
  • 전체
    오늘
    어제
    • 분류 전체보기 (280)
      • 📑 신입일기 (35)
      • 🍪 Web (1)
        • angular (1)
        • JavaScript (0)
      • 🧩 Node.js 공부 (2)
      • 🎲 알고리즘 공부 (192)
        • 프로그래머스 (76)
        • 백준 (96)
        • 코드업 (19)
      • 🎨 Tistory Customizing (1)
      • 💌 일상 (12)
        • 일상 (5)
        • 기록 (7)
      • 📜 자격증 (2)
        • 정보처리기사 (2)
      • 📗 spring boot 공부 (9)
      • 학교 공부 (20)
        • ICT 개론 (14)
        • 리눅스 (6)
      • ChatGPT 랑 놀기 (0)
  • 블로그 메뉴

    • 홈
    • 방명록
    • 글쓰기
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    정보처리기사
    nodejs
    충무로
    찬양추천
    파이썬
    폰켓몬
    정처기
    티스토리챌린지
    프로그래머스
    BOJ
    스프링 부트
    50문답
    코민이
    카카오
    코드업
    오블완
    백준
    codeup
    til
    코테
    행렬덧셈
    피보나치수
    오버워치
    6월 목표
    스프링부트
    신입일기
    코린이
    일기
    컨텐더스
    연습문제
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
듬듬
[프로그래머스 / Level 1] 두 정수 사이의 합 (파이썬)
상단으로

티스토리툴바