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의 대소관계는 정해져있지 않습니다.
입출력 예시
나의 풀이
1) 실패
function solution(a, b) {
var answer = 0;
if(a!=b){
if(a<b) {
for(let i=a; i==b; i++ ){
answer = answer+a
}
}
else{
for(let j=b; j==a; j++ ){
answer = answer+b
}
}
return answer;
}
else{
answer = a;
return answer;
}
}
반복문을 오해했다.
i==b; '// i==b가 성립하는 동안 반복 (성립하지 않아야만 멈춘다)' 이라고 해석해야 하지만,
'// i==b가 성립할 때 까지 반복 (성립해야만 멈춘다)' 라고 해석해서 오류 발생
그리고 answer = answer+a 가 아닌 answer = answer+i 혹은 answer+=i 가 맞겠다.
2) 수정
function solution(a, b) {
var answer = 0;
if(a!=b){
if(b>a) {
for(let i=a; i<=b; i++ ){
answer = answer +i
}
}
else{
for(let j=b; j<=a; j++ ){
answer +=j
}
}
return answer;
}
else{
answer = a;
return answer;
}
}
일단 테스트는 성공하지만, 더 간결하게 표현할 수 있을것 같다.
3) 최종
function solution(a, b) {
var answer = 0;
if(b>=a) {
for(let i=a; i<=b; i++ ){
answer = answer +i
}
}
else{
for(let j=b; j<=a; j++ ){
answer +=j
}
}
return answer;
}
만족
모범답안
function adder(a, b){
var result = 0
//함수를 완성하세요
return (a+b)*(Math.abs(b-a)+1)/2;
}
가우스가 코드를 짜면 이런 느낌일까..?
설명 끝
'알고리즘' 카테고리의 다른 글
6. 없는 숫자 더하기 (JavaScript) (0) | 2022.01.14 |
---|---|
5. 문자열을 정수로 바꾸기 (JavaScript) (0) | 2022.01.14 |
3. 가운데 글자 가져오기 (JavaScript) (0) | 2022.01.14 |
2. 짝수와 홀수 (JavaScript) (0) | 2022.01.14 |
1. 직사각형 별찍기 (JavaScript) (0) | 2022.01.14 |
댓글