728x90
문제 설명
두 정수 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의 대소관계는 정해져있지 않습니다.
입출력 예
풀이
public class Solution {
public long solution(int a, int b) {
long answer = 0;
if(b >= a)
{
for(int i = a; i <= b; i++)
{
answer += i;
}
}
else
{
for(int i = b; i <= a; i++)
{
answer += i;
}
}
return answer;
}
}
: 간결하지 않지만 for문을 두 번 돌려서 값을 찾았다.
a < b인 경우 for문을 돌려가며 i를 1씩 증가시킨 후 answer에 더해주었고,
a > b인 경우 for문을 돌려가며 i를 1식 감소시킨 후 더해주었다.
코드를 좀 더 간결하게 줄이고 싶었지만 생각이 나지 않았다ㅜㅜ
다른 사람 풀이)
public class Solution {
public long solution(int a, int b) {
long answer = 0;
while (a != b)
{
answer += a;
a = (a > b) ? a - 1 : a + 1;
}
return answer + b;
}
}
: while문으로 a와 b가 다를때까지 a를 더해주는데,
삼항연산자를 사용하여 a>b이면 -1을, a<b이면 +1을 해주는 방식으로 문제를 해결했다.
public class Solution {
public long solution(int a, int b) {
long answer = 0;
if(a>b) // a가 b보다 크면 swap하기
{
int c=a;
a=b;
b=c;
}
for(int i=a;i<=b;i++)
{
answer+=i;
}
return answer;
}
}
: a>b일 경우 a->b , b->a로 바꿔주어서 for문에 대입시키는 방법도 있다!
'공부 > 코딩테스트' 카테고리의 다른 글
프로그래머스/C# - 음양 더하기 (0) | 2024.06.07 |
---|---|
프로그래머스/C# - 서울에서 김서방 찾기 (0) | 2024.06.04 |
프로그래머스/C# - 나머지가 1이 되는 수 찾기 (0) | 2024.06.03 |
프로그래머스/C# - x만큼 간격이 있는 n개의 숫자 (1) | 2024.06.03 |
프로그래머스/C# - 하샤드 수 (1) | 2024.05.31 |