728x90
반응형
안녕하세요. 민쯔입니다.😊
이번에는 "두 정수 사이의 합" 문제에 대해 풀어보았는데요.
이번 문제는 쉬운 편인데 어떻게 간결하게 푸는지에 대한 문제인 것 같아요.
이번 문제 해결방안은 두 가지에 대해 소개해볼까 해요.
그럼 해결방안에 대해 설명하겠습니다.
방법 1
function solution(a, b) {
var answer = 0;
if(a > b) [a, b] = [b, a]; // a>b일 경우 a는 b가 되고, b는 a가 됩니다.
for(let i=a; i<=b; i++) answer += i;
return answer;
}
이 방법은 a는 작은 수, b는 큰 수로 바꾼 뒤에 for문을 사용해서 값을 구해주는 방법입니다.
[a, b] = [b, a]; 는 구조 분해 할당을 이용한 방법인데요. 자세한 설명은 링크로 남기겠습니다.👇
https://velog.io/@jinyongp/%EB%91%90-%EA%B0%92%EC%9D%84-Swap-%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95
a는 작은 수 b는 큰 수로 바꾸어준 뒤에
for문을 사용하여 초기값을 작은 수(a)로 조건식은 큰 수(b)로 넣어주고
answer += i; 을 사용해서 a~b까지의 수를 다 더합니다.
방법 2
function solution(a, b) {
var answer = 0;
for(let i = Math.min(a, b); i<=Math.max(a, b); i++) answer += i;
return answer;
}
이 방법은 Math에 min, max를 사용하여 for문에 초기값에 작은 값 조건식에 큰 값을 넣어 구하는 방법입니다.
- Math.min() 함수는 주어진 숫자들 중 가장 작은 값을 반환합니다.
- Math.max()함수는 입력값으로 받은 0개 이상의 숫자 중 가장 큰 숫자를 반환합니다.
이 방법이 더 간단해서 이 방법을 더 추천드립니다.
728x90
반응형
'코딩 > 프로그래머스 코딩테스트' 카테고리의 다른 글
[프로그래머스] 문자열 내 마음대로 정렬하기 (0) | 2022.01.08 |
---|---|
[프로그래머스] 나누어 떨어지는 숫자 배열 (0) | 2021.12.29 |
[프로그래머스] 같은 숫자는 싫어 (0) | 2021.12.28 |
[프로그래머스] 가운데 글자 가져오기 (0) | 2021.12.09 |
[프로그래머스] 비밀지도 (0) | 2021.12.08 |