public class Main {
public int solution(int[] arr1, int[] arr2) {
int answer = 0;
return answer;
}
public static void main(String[] args) {
Main method = new Main();
int[] arr1 = {9, 9, 9, 9, 7, 9, 8};
int[] arr2 = {23, 23, 30, 28, 30, 23, 23};
System.out.println(method.solution(arr1, arr2));
}
}
지용이는 항해에서 한 주 동안 공부 기록을 남길 알고리즘을 만들어보기로 결심했다.
항해의 체크인 페이지에는 몇가지 조건이 있는데 이를 만족하는 알고리즘을 만들어보자.
checkin | checkout | result |
---|---|---|
[9, 9, 8, 8, 7, 8, 9] | [21, 25, 30, 29, 22, 23, 30] | 96 |
[9, 7, 8, 9, 7, 9, 8] | [23, 22, 26, 26, 29, 27, 22] | 110 |
checkin | checkout | result |
---|---|---|
[9, 9, 9, 9, 7, 9, 8] | [23, 23, 30, 28, 30, 23, 23] | 102 |
public class Main {
public int solution(int[] arr1, int[] arr2) {
<!--arr1 : 체크인 시간-->
<!--arr2 : 체크아웃 시간-->
int answer = 0;
<!--arr1의 길이만큼 for 문을 실행 (배열이기때문에 length()가 아닌, length 를 사용함)
('checkin 과 checkout 배열의 길이는 각각 7 이다.'라는 조건이 있으므로, arr1과 arr2의 배열의 길이는 동일함. 그래서 arr2.length으로 해도 동일한 결과가 나옴)-->
for (int i = 0; i < arr1.length; i++) {
<!--'체크아웃을 할 때 익일 시간은 24+a 로 계산한다.', '체크인 페이지는 체크아웃이 새벽 5시 정각이나 새벽 5시를 넘어가면 체크아웃을 깜빡한 것으로 간주한다.'라는 조건이 있으므로,
체크아웃 시간(arr2)이 24+5 = 29시(새벽5시)를 넘어가면, 문제의 조건에 따라서 자동으로 체크아웃을 오후 9시(21시)로 한 것으로 처리함-->
if (29 <= arr2[i]) {
arr2[i] = 21;
}
<!--한 주 동안의 공부 기록 = 체크아웃 시간 - 체크인 시간 을 i번 만큼 반복한 값들을 모두 더함-->
answer += arr2[i] - arr1[i];
}
return answer;
}
public static void main(String[] args) {
Main method = new Main();
int[] arr1 = {9, 9, 9, 9, 7, 9, 8};
int[] arr2 = {23, 23, 30, 28, 30, 23, 23};
System.out.println(method.solution(arr1, arr2));
}
}
public class Main {
public int solution(int[] arr1, int[] arr2) {
int answer=0;
for(int i=0; i< arr1.length; i++){
<!--arr2[i] >=29 가 true면 21-arr1[i]을, false면 arr2[i]-arr1[i]을 실행하고 answer로 더한다-->
answer += (arr2[i] >=29)? 21-arr1[i] : arr2[i]-arr1[i];
}
return answer;
}
public static void main(String[] args) {
Main method = new Main();
int[] arr1 = {9, 9, 9, 9, 7, 9, 8};
int[] arr2 = {23, 23, 30, 28, 30, 23, 23};
System.out.println(method.solution(arr1, arr2));
}
}
삼항 연산자 활용