Dev-Kyuu
article thumbnail

- 문제 :

  • ν•­ν•΄ 체크인/체크아웃 배열을 κ³„μ‚°ν•˜μ—¬ μ΄λ²ˆμ£Όμ— 총 λͺ‡μ‹œκ°„을 κ³΅λΆ€ν–ˆλŠ”μ§€ κ΅¬ν•˜λŠ” 문제 
  • μƒˆλ²½ 5μ‹œ μ •κ°μ΄κ±°λ‚˜, 이후 체크아웃을 ν•˜μ˜€μ„ λ•ŒλŠ” 체크아웃을 κΉŒλ¨Ήμ€κ²ƒμœΌλ‘œ κ°„μ£Όν•˜μ—¬ 21μ‹œκΉŒμ§€ ν•œκ²ƒμœΌλ‘œ 함
package examPrac;

public class exam2 {

    public static class Main {
        public int solution(int[] arr1, int[] arr2) {
            int answer = 0;
            // 닡을 리턴할 μ •μˆ˜ν˜• λ³€μˆ˜λ₯Ό μ„ μ–Έ (총 μ‹œκ°„μœΌ 합을 λ°˜ν™˜ν• κ±°κΈ° λ•Œλ¬Έμ— μ •μˆ˜ν˜•μœΌλ‘œ 선언함)
            int result = 0;
            // 총 μ‹œκ°„ κ³„μ‚°μ‹œ μ‚¬μš©ν•  λ³€μˆ˜ μ„ μ–Έ
            int timeOut = 21;
            // 29μ‹œ(5μ‹œ)κ°€ λ„˜μ–΄κ°ˆκ²½μš° 21μ‹œκΉŒμ§€ ν•œκ²ƒμœΌλ‘œ κ°„μ£Όν•˜μ—¬ 계산할것이기 λ•Œλ¬Έμ— 숫자 21을 λ³€μˆ˜μ— λ„£μ–΄μ„œ μ΄ˆκΈ°ν™”

            for (int i=0; i < arr2.length; i++){
                // iλŠ” 0λΆ€ν„° arr1 λ°°μ—΄μ˜ 크기 만큼 λ°˜λ³΅ν•˜λ„λ‘ 함
                // arr1, arr2 λ°°μ—΄μ˜ 크기가 λ˜‘κ°™κΈ°λ•Œλ¬Έμ— arr1둜 ν•˜μ—¬λ„ 무관함

                if ( arr2[i] >= 29){
                    // λ§Œμ•½ arr2[i] == 체크아웃 μ‹œκ°„μ΄ 29μ‹œμ™€ κ°™κ±°λ‚˜, κ·Έ 이상이라면
                    result += timeOut - arr1[i];
                    // 결과값에 νƒ€μž„μ•„μ›ƒκΈ°μ€€μ‹œκ°„ 21μ‹œμ—μ„œ 체크인 μ‹œκ°„μ„ λΊ€ μ‹œκ°„μ„ μ €μž₯함
                    // arr2κ°’μ—μ„œ 체크인 μ‹œκ°„μ„ λΊ„ 경우 총 κ³΅λΆ€ν•œ μ‹œκ°„μ˜ 합을 ꡬ할 수 있음
                    // ex ) 9μ‹œ ~ 21μ‹œ 일 λ–„ : 21 - 9 = 12μ‹œκ°„

                }else {
                    // arr2[i]값이 29보닀 ν¬μ§€μ•ŠμœΌλ©΄(=5μ‹œ 전에 체크아웃을 ν–ˆμœΌλ©΄)
                    result += arr2[i] - arr1[i];
                    // μ²΄ν¬μ•„μ›ƒμ‹œκ°„μ—μ„œ 체크인 μ‹œκ°„μ„ λΉΌμ„œ 총 κ³΅λΆ€ν•œ μ‹œκ°„μ„ ꡬ함
                }
            }
            answer = result;
            // κ³„μ‚°ν•œκ°’μ„ answer λ³€μˆ˜μ— λ„£μ–΄μ„œ
            return answer;
            // 리턴함 !
        }
    }

    public static void main(String[] args) {
        examPrac.exam1.Main method = new examPrac.exam1.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));
    }
}

- 풀이 :

  • 문제 μžμ²΄λŠ” μ–΄λ €μš΄ λ¬Έμ œκ°€ μ•„λ‹ˆμ˜€μœΌλ‚˜, μ‹€ 계산 μ‹œκ°„μ„ κ΅¬ν•˜λŠ”λ° μ–΄λ–»κ²Œ κ΅¬ν•˜μ§€ ? ν•˜λ©° 였랜 고민을 ν–ˆλ‹€.
  • μ†Œμš”μ‹œκ°„μ„ κ΅¬ν• λ•ŒλŠ” 체크아웃 μ‹œκ°„ - 체크인 μ‹œκ°„μ„ ν•˜λ©΄ (ex : 21 - 9 = 12) κ΅¬ν• μˆ˜μžˆλ‹€λŠ” 점 .. 좩격적 .. 🚨
profile

Dev-Kyuu

@kyuu_ng

ν¬μŠ€νŒ…μ΄ μ’‹μ•˜λ‹€λ©΄ "μ’‹μ•„μš”β€οΈ" λ˜λŠ” "κ΅¬λ…πŸ‘πŸ»" ν•΄μ£Όμ„Έμš”!