일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 점프투자바
- 코딩연습
- 프로그래밍언어
- Mac에 JDK 설치하기
- 자바 코드 구조
- 코딩테스트
- 알고리즘
- 파이썬
- 자바코드
- java 내장 메서드
- 자바주석
- JDK
- 자료형
- Mac에 인텔리제이 설치하기
- 인텔리제이설치하기
- 자바 자료형
- Python
- 자바규칙
- 자바 변수
- JDK설치하기
- 인텔리제이
- java문자열
- 자바
- Java독학하기
- 프로그래머스
- java자료형
- 문자열 내장 메서드
- java
- Today
- Total
코딩 뚝딱이
[프로그래머스] 연습문제 : 두 정수 사이의 합 [Python] 본문
LV2 < 두 정수 사이의 합 >
■ 문제 설명
두 정수 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 |
■ 기본 제공 틀 (Python)
def solution(a, b):
answer = 0
return answer
▼ A N S W E R ▼
■ 내 풀이 (Python)
def solution(a, b):
answer = 0
if (a > b):
for x in range (b, a+1):
answer += x
elif (a < b):
for x in range (a, b+1):
answer += x
else:
answer = a
return answer
■ 내 풀이 설명 (Python)
주어지는 a와 b의 대소 관계를 모르기 때문에 다음과 같이 3가지 경우로 나눈 후에 풀어야한다.
1) a > b
2) a < b
3) a = b
우선 a가 b보다 클 때 (a > b)를 기준으로 풀어보면,
a와 b 사이에 속한 모든 정수를 더해야 하기 때문에 for문을 사용하여 풀었다.
------------------------------------------------------------------------------------------------------------------------------------------------------
range(start, stop, step)
예) range (1, 5)이면 1, 2, 3, 4를 의미함 // step의 default 값은 1임
------------------------------------------------------------------------------------------------------------------------------------------------------
a와 b사이의 모든 x에 대해 값의 합을 구하는 것이므로 범위는 range(b, a+1)이다.
answer = 0으로 두고 시작했을 때, 아래의 for문에 해당하는 모든 x의 값을 answer에 차곡차곡 더하는 것이다.
if (a > b):
for x in range (b, a+1):
answer = answer + x
마찬가지로, a가 b보다 작을 때(a < b)는 아래와 같다.
elif (a < b):
for x in range (a, b+1):
answer += x
제한 조건에서 a와 b가 같은 경우에는 둘 중 아무수나 return하라고 했으므로
내 마음에 드는 a를 answer로 할당..^^
else:
answer = a
여기서 조건을 else가 아닌 elif (a = b)로 해줘도 되지만,
이미 위에서 모든 경우가 다 나와서 else 자체가 a=b의 경우밖에 없기 때문에 else를 써줬다.
- 끝 -
※ 코딩도 블로그도 처음이라 어색하지만, 기록용으로 계속 남겨보도록 하겠다.
'알고리즘&코딩테스트 > Python 코테' 카테고리의 다른 글
[프로그래머스] 연습문제 : 문자열 내 p와 y의 개수 [Python] (0) | 2023.03.24 |
---|---|
[프로그래머스] 연습문제 : 약수의 합 [Python] (0) | 2023.03.24 |
[프로그래머스] 연습문제 : 서울에서 김서방 찾기 [Python] (0) | 2023.03.24 |
[프로그래머스] 연습문제 : 수박수박수박수박수박수? [Python] (0) | 2023.03.24 |