import java.util.Arrays;
class Solution {
public int solution(int[] sides) {
int answer = 0;
Arrays.sort(sides);
int min=sides[1]-sides[0]+1;
int max=sides[0]+sides[1]-1;
for(int i=min;i<=max;i++){
answer++;
}
return answer;
}
}
문제를 제출하고 보니 for문을 돌려서 답을 내는 것은 비효율적이라고 판단하였다. 그래서 생각해 낸 방법은, 해당 for문은 결국 min에서부터 max까지의 숫자의 개수 이기때문에 식으로 나타내면 max-min+1이다. 이것을 정리하면 (제시된 두 변 중 작은 변의 길이)*2-1이 된다.
//sort한 경우
Arrays.sort(sides);
answer=sides[0]*2-1;
//Math.min을 사용한 경우
int min=Math.min(sides[0],sides[1]);
answer=min*2-1;
'JAVA > 프로그래머스' 카테고리의 다른 글
[프로그래머스/자바] 안전지대 (0) | 2023.09.04 |
---|---|
[프로그래머스/자바] 캐릭터의 좌표 (0) | 2023.09.03 |
[프로그래머스/자바] A로 B 만들기 (0) | 2023.09.03 |
[프로그래머스/자바] 다항식 더하기 (0) | 2023.09.01 |
[프로그래머스/자바] 자릿수 더하기 (0) | 2023.08.31 |
댓글