728x90
반응형
💻 프로그래머스 코딩 테스트 – 두 정수 사이의 합
📌 문제 설명
두 정수 a, b가 주어졌을 때,
a와 b 사이에 있는 모든 정수의 합을 구하는 문제입니다.
예를 들어,
- a = 3, b = 5 → 3 + 4 + 5 = 12
- a = 5, b = 3 → 5 + 4 + 3 = 12
처럼, 두 수의 크기에 상관없이 사이에 있는 숫자들을 모두 더한 값을 구해주면 됩니다.
✅ 제한 사항
- a, b는 -10,000 이상 10,000 이하의 정수입니다.
- a와 b가 같으면, 그 수 하나를 그대로 반환하시면 됩니다.
💡 어떻게 풀면 좋을까요?
이 문제는 단순히 반복문으로 숫자들을 더해도 되지만,
수학적인 공식을 활용하면 훨씬 간단하고 효율적으로 해결할 수 있어요!
🎓 등차수열의 합 공식
(첫 번째 수 + 마지막 수) × (숫자의 개수) ÷ 2
a와 b 중 어떤 수가 더 크든 상관없이
이 공식을 그대로 적용하면 정답을 구할 수 있습니다.
🧾 코드 설명 (C#)
using System;
public class Solution {
public long solution(int a, int b) {
// int는 오버플로우 위험이 있어 long으로 변환
long aa = a;
long bb = b;
// 등차수열 합 공식 적용
return (aa + bb) * (Math.Abs(aa - bb) + 1) / 2;
}
}
🔍 코드 설명
코드설명
long aa = a; | 계산 도중 오버플로우가 발생하지 않도록 long으로 변환해줍니다. |
Math.Abs(aa - bb) | 두 수의 차이를 절댓값으로 구해서 숫자의 개수를 계산합니다. |
(aa + bb) * (차이 + 1) / 2 | 등차수열의 합 공식을 그대로 적용합니다. |
✨ 포인트 정리
- 반복문 없이 한 줄의 수식으로 깔끔하게 해결할 수 있어요.
- 두 수의 크기를 비교할 필요도 없고, 코드도 아주 간단하죠.
- 수학적인 사고를 적용하는 연습에 딱 좋은 문제예요 😊
📝 마무리
이 문제는 반복문보다는 수학 공식을 활용하는 게 훨씬 효율적입니다.
단순해 보이지만, 코드의 안정성과 정확성을 위해 형변환까지 고려한 점도 중요한 포인트예요.
728x90
반응형
'C# > 프로그래머스' 카테고리의 다른 글
없는 숫자 더하기 (0) | 2025.04.21 |
---|---|
[프로그래머스] 음양 더하기 (0) | 2025.04.21 |
[프로그래머스] 정수 내림차순으로 배치하기 (0) | 2025.04.21 |
[프로그래머스] 정수 제곱근 판별 (0) | 2025.04.21 |
[프로그래머스] 하샤드 수 (0) | 2025.04.21 |
댓글