Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 토이프로젝트
- 주간 회고
- Hello Coding HTML5+CSS3
- 자바
- 개인 프로젝트
- 알고리즘
- html
- 인사이드 자바스크립트
- express
- 우아한테크캠프 4기
- 코드스쿼드
- 회고의 회고
- 자바스크립트 객체
- 우아한테크코스
- 우아한형제들
- 모듈 배포하기
- 프로그래머스
- 레인지 슬라이더
- 네이버 테크 콘서트
- 리액트
- 자바스크립트
- ES6
- 우아한테크캠프
- AWS
- CSS
- 함수
- npm
- 러닝 자바스크립트
- toast
- 토이 프로젝트
Archives
- Today
- Total
블로그
[프로그래머스, 자바스크립트] 알고리즘-1 두 정수 사이의 합 본문
출처 : 프로그래머스 알고리즘 코딩테스트 Level.1
https://programmers.co.kr/learn/courses/30/lessons/12912?language=javascript
문제
두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.
예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.
제한 조건
1. a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요.
2. a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다.
3. a와 b의 대소관계는 정해져있지 않습니다.입출력 예
a | b | return
3 | 5 | 12
3 | 3 | 3
5 | 3 | 12
풀이 과정
1. a와 b의 대소관계 비교, 만약 a와 b가 같다면 a 반환
2. 최솟값과 최댓값 범위를 벗어난다면 false 반환
3. 대소관계를 비교 후 min값 부터 max값 까지 반복문을 이용하여 합산
4. 결과 반환
답안
function solution(a, b) {
let max, min;
if(a === b) {
return a;
} else if(a > b) {
max = a;
min = b;
} else {
max = b;
min = a;
}
if(min < -10000000 || max > 10000000) {
return false;
}
let answer = 0;
for(let i = min ; i <= max; i += 1) {
answer += i;
}
return answer;
}
문제를 푸는 시점에서 최솟값, 최댓값 부분을 간과했다.
2~14번 라인의 유효성 검사 부분을 간결하게 바꿀 수 없을까?
'알고리즘' 카테고리의 다른 글
[프로그래머스, 자바스크립트] 알고리즘-6 수박수박수박수박수박수? (0) | 2019.11.10 |
---|---|
[프로그래머스, 자바스크립트] 알고리즘-5 가운데 글자 가져오기 (0) | 2019.11.09 |
[프로그래머스, 자바스크립트] 알고리즘-4 문자열을 정수로 바꾸기 (0) | 2019.11.08 |
[프로그래머스, 자바스크립트] 알고리즘-3 같은 숫자는 싫어 (0) | 2019.11.07 |
[프로그래머스, 자바스크립트] 알고리즘-2 짝수와 홀수 (0) | 2019.11.06 |
Comments