반응형
문제 설명두 정수 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의 대소관계는 정해져있지 않습니다.
입출력 예
a b return
3 5 12 3 3 3 5 3 12
a, b 두개의 정수를 받아 a <-> b 사이에 있는 모든 값들을 더 하고 사용자에게 출력해주면 되는 문제
아주 예~~~전에 프로그래머스에서 한 문제도 풀 지 못했던 시절 작성해놓은 코드가 있어서 살짝 손만봐서 제출했다.
풀고나서 다른 사람들의 풀이도 봤는데 Math를 이용해서 푼 사람도 있고, 나처럼 반복문을 사용해서 푼 사람들도 있었다. 역시 세상은 넓고 다양한 코드가 존재하구나 생각했다.
나는 파라미터 a와 b를 비교하여 큰 숫자가 어떤거냐에 따라 두 변수(반복문을 돌릴 compNum과 lowNum이라는 변수를 선언했다)에 숫자를 알맞게 배치하였다.
그리고 반복문을 실행하는데, 실행하며 결과를 리턴할 answer 변수에 lowNum을 넣어주며 1씩 증가시키고, 최종적으로 a와 b가 동일한 숫자가 되면 그 때 반복문을 종료하고 지금까지 answer에 담긴 값을 사용자에게 출력한다.
아래는 해답
package list;
public class Programmers_NumberPlus {
public static long solution(int a, int b) {
// 결과를 출력할 long 변수
long answer = 0;
// max값과 min값을 담아놓을 CompNum, lowNum 생성
int compNum = 0;
int lowNum = 0;
// 파라미터로 넘어온 a가 b보다 작다면?
if(a < b) {
compNum = b;
lowNum = a;
} else {
// a가 b보다 크다면?
compNum = a;
lowNum = b;
}
// 위에서 정리된 compNum과 lowNum 체크해서 반복문 실행
for (int i = compNum; lowNum <= compNum; i++) {
answer += lowNum;
lowNum++;
}
// 결과 출력
return answer;
}
public static void main(String[] args) {
// 파라미터
long result = solution(3, 3);
// 솔루션 값 출력
System.out.print(result);
}
}
투박하기 그지 없지만 ㅠㅠ 조금 조금씩 나아가고 있다.
반응형
'Algorithm > Programmers' 카테고리의 다른 글
[Programmers] Java 프로그래머스 월간 코드 챌린지 시즌3 없는 숫자 더하기 해답 (0) | 2021.10.13 |
---|---|
[Programmers] Java 프로그래머스 레벨1 하샤드 수 문제 풀이 (0) | 2021.09.23 |
[Programmers] Java 프로그래머스 레벨1 자연수 뒤집어 배열로 만들기 해답 (0) | 2021.09.11 |
[Programmers] Java 프로그래머스 레벨1 나누어 떨어지는 숫자 배열 해답 (Arrays, ArrayList) (0) | 2021.09.07 |
[Programmers] Java 프로그래머스 레벨1 정수 내림차순으로 배치하기 해답 (Arrays, Collection) (0) | 2021.09.06 |