728x90
문제
정답 처리된 코드(1)
function solution(a, b) {
var answer = 0;
if(a>=b){
for(let i=b; i<=a; i++){
answer+=i;
}
}else{
for(let j=a; j<=b; j++){
answer+=j;
}
}
return answer;
}
문제 이해
1) 제한 조건에서 a와 b의 대소 관계가 정해져 있지 않다고 했기 때문에 a가 클 때와 아닐 때로 나눈다.
2) if 문안의 for 문은 a, b 중 큰 값에 따라서 반복문 설정을 한다.
정답 처리 된 코드(2)
function solution(a, b) {
var answer = 0;
answer = (a+b) * (Math.abs(b-a)+1)/2
return answer;
}
문제 이해
1) Math.abs()는 숫자의 절댓값을 반환한다.
2) 가우스 공식을 사용한다.
n(n+1)/2
정답 처리 된 코드(3)
function solution(a, b) {
var answer = 0;
var min = Math.min(a, b);
var max = Math.max(a, b);
for(var i=min; i <= max; i++){
answer+=i;
}
return answer;
}
문제 이해
1) a, b 중 작은 값과 큰 값을 찾는다.
2) 작은 값을 for 문의 시작에 두고 max 값까지 for문을 회전한다.
3) 작은값과 큰 값 사이의 값을 더한다.
출처: programmers.co.kr/learn/courses/30/lessons/12912?language=javascript
'알고리즘, 자료구조 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/javascript/카카오인턴십] 크레인 인형뽑기 게임 (0) | 2021.04.06 |
---|---|
[프로그래머스/javascript] 수박수박수박수박수박수? (0) | 2021.04.05 |
[프로그래머스/javascript] 서울에서 김서방 찾기 (0) | 2021.04.05 |
[프로그래머스/javascript] 2016년 문제 풀기 (0) | 2021.04.05 |
[프로그래머스/완전탐색/javascript] 모의고사 코드 및 설명 (0) | 2021.04.05 |