일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- programmers
- Spring
- cd
- 알고리즘
- ORM
- builder-pattern
- docker
- Di
- JPA
- vuejs
- IntelliJ
- 프로그래머스
- k8s
- map
- dabase
- SpringMVC
- Kubernetes
- 해시맵
- superBuilder
- CI
- hibernate
- DevOps
- CI/CD
- 뷰
- java
- Vue
- Oracle
- 자바
- 코딩테스트연습
- CKA
Archives
- Today
- Total
문홍의 공부장
[Java] 프로그래머스 Lv.1 두 정수 사이의 합 풀이 본문
반응형
문제 설명
두 정수 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 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | public long solution(int a, int b) { long answer = 0; if(a > b) { int temp = 0; temp = a; a = b; b = temp; } while(a <= b) { answer += a; a++; } return answer; } | cs |
다른 사람의 풀이
수학 공식을 이용한 풀이
1 2 3 | private long sumAtoB(long a, long b) { return (b - a + 1) * (a + b) / 2; } | cs |
삼항연산자 & 반복문을 이용한 풀이
temp 변수 대신 삼항연산자를 이용하여 반복문의 시작과 끝 값을 제어했다.
항상 for loop을 쓸 때 기본 포맷(for (int i = 0; i < args.length; i++))으로만 써서 이런식으로 조금만 생각하면 될 것들도 잘 못하는 것 같다. 연습이 필요하다..
1 2 3 4 5 6 7 | public long solution(int a, int b) { long answer = 0; for (int i = ((a < b) ? a : b); i <= ((a < b) ? b : a); i++) answer += i; return answer; } | cs |
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[Java] 프로그래머스 Lv.1 문자열 다루기 기본 풀이 (0) | 2020.02.06 |
---|---|
[Java] 프로그래머스 Lv.1 문자열 내 p와 y의 개수 풀이 (0) | 2020.02.06 |
[Java] 프로그래머스 Lv.1 같은 숫자는 싫어 풀이 (0) | 2020.01.27 |
[Java] 프로그래머스 Lv1. 가운데 글자 가져오기 풀이 (0) | 2020.01.27 |
[Java] 프로그래머스 Lv1. 2016년 풀이 (0) | 2020.01.27 |