이번에는 그래도 좀 그나마 쉬워 보이는 문제로 가져왔습니다.
쉬운 문제인 만큼 2가지의 풀이를 준비했는데요 (푸는 방법은 정~~~~말로 많아요!!)
자! 먼저 문제를 보면
https://programmers.co.kr/learn/courses/30/lessons/12912
이렇게 나와있습니다. ㅎㅎ 상당히 짧죠?
문제풀이
case 1
public static long solution(int a, int b) {
long answer = 0;
if (a > b) {
for (int i = b; i < a + 1; i++) {
answer += i;
}
} else if (a < b) {
for (int i = a; i < b + 1; i++) {
answer += i;
}
} else if (a == b) {
answer = a;
}
return answer;
}
여기서 문제의 조건을 보면 a와 b의 대소관계가 정해져 있지 않으므로 ( a > b ) 일 때와 ( b > a ), ( a == b ) 일 때 이렇게 3가지로 나누어서 접근해 풀었습니다.
a, b는 정수로 작은수부터 큰 수까지의 합을 구하는 거라 단순 반복문으로 나열해 풀었습니다.
case 2
public static long solution(int a, int b) {
long answer = 0;
long min = Math.min(a, b);
long max = Math.max(a, b);
for (long i = min; i < max + 1; i++) {
answer += i;
}
return answer;
}
이번에는 함수를 사용하여 풀었는데요
java.lang.Math를 이용하여 순서 상관없는 2개의 수 a, b에 최솟값, 최댓값을 정하고
마찬가지로 작은수에서 큰 수까지의 정수를 반복문을 사용해 계속 더해줬습니다.
앞에도 말씀드렸지만 문제를 풀수있는 방법은 정말로 많이 있습니다.
그래도 좀 더 코드가 간편해 보이고, 유효성이 좋고 안 좋고는 정말 많이 해보면서 함수에 관한 것을 익혀놓는 것이 중요한 거 같아요 ㅎㅎㅎ 요새는 최소한의 조건으로 코딩 테스트를 보는 회사들이 많아지고 있다고 하니까 나중에 취업을 위해서라도 꾸준히 공부하는 것이 좋은 것 같습니다.
'Algorithm > Programmers' 카테고리의 다른 글
[Programmers] 프로그래머스 12926 시저암호 - java (0) | 2021.07.17 |
---|---|
[Programmers] 프로그래머스 1845 폰켓몬 - java (1) | 2021.07.01 |
[Programmers] 프로그래머스 42626 더 맵게 - java (0) | 2021.06.17 |
[Programmers] 프로그래머스 42587 프린터 - java (2) | 2021.06.13 |