My Melody Is Cute TIL 231017
본문 바로가기

기록🍌/회고

TIL 231017

 

TIL이란?

Today I learn

 

 

결과보단 과정에 집중하는 것

완벽하지 않은 자신을 인정하고

변화가 가능함을 믿고 실천해가기

있는 그대로의 나를 관찰(모니터링)해서

강점과 약점을 파악하고 방법과 속도를 찾아가기

피드백으로 배우고 성장

행동과 감정을 되돌아보기

 

 

 

사실 네이버 블로그도 있는데 티스토리를 한번 써봤다...

낯설어서 좀 불편한거같기도 하고 편의성은 네이버가 마음에 드는데

아직 아리까리하다ㅠ 폰트도 구리고 !!!! 

마음에 안들면 네이버로 갈아탈 예정,,

폰트를 바꿨다 나이스

 

일기도 맨날 몇 개 쓰고 마는 최강 P형 사람이지만 회고를 열심히 써봐야지

썼다는거에 의의를 두려고 한다....

나중에 보면 기분이 좋을테니까

 


 

 

개발 환경 세팅

  • 자신의 운영 체제에 맞는 개발 환경을 세팅할 수 있다.

-운영체제 확인 후 설치하기 윈도우 / 맥

 

Java Intro

  • JVM이 무엇이고, 어떻게 Java 프로그램을 운영체제로부터 독립적으로 동작할 수 있게 해 주는지 설명할 수 있다.
  • JDK가 무엇인지 설명할 수 있다.
  • 인텔리제이에서 프로젝트를 생성할 수 있다.
  • 메서드가 무엇인지 설명할 수 있다.
  • 의사코드를 왜 작성하는지 설명할 수 있다.

 

 

 

변수와 타입

  • 변수상수가 무엇이고, 왜 사용하는지 설명할 수 있다.
  • 변수를 선언할 때에 타입이 왜 필요한지 설명할 수 있다.   -변수명은 다른사람이 봐도 알수 있게 클래스명사/메서드동사
  • 기본 타입의 변수를 선언하고, 기본 타입의 데이터를 할당할 수 있다.
    • 정수, 실수, 논리, 문자
  • 자동 타입 변환이 일어나는 경우를 설명할 수 있다.
  • 수동 타입 변환이 언제 필요한지 설명할 수 있다.

 

문자열

  • 문자열 타입의 변수를 선언하고 문자열 데이터를 할당할 수 있다.
  • charAt() 메서드를 활용해 문자열의 각 문자에 접근할 수 있다.

 

콘솔 입출력

  • print, printf, println의 차이를 설명할 수 있다.
  • Scanner를 활용해 데이터를 입력받는 방법을 설명할 수 있다.

 

제어문

  • if문과 switch문의 사용 방법 및 차이를 설명할 수 있다.
  • 삼항 조건 연산자를 사용하는 방법을 설명할 수 있다.
  • for문의 구조를 설명할 수 있다.
  • for문과 while문을 활용해 원하는 횟수만큼 반복문을 반복시킬 수 있다.
  • 반복문을 활용해 문자열의 첫 문자부터 마지막 문자까지 순회할 수 있다.
  • 향상된 for문의 구조를 설명하고 사용할 수 있다.

 

배열

  • 배열이 무엇이고, 왜 사용하는지 설명할 수 있다.
  • 1차원 배열과 2차원 배열의 차이를 설명할 수 있다.
  • 배열 변수를 선언하고 배열을 생성하여 할당할 수 있다.
  • 반복문을 활용해 배열을 탐색할 수 있다.

전기 요금 계산기 만들기

 

코드는 만들었는데 아직 출력값코드를 넣지 못했다,,,

 ( 99kwh,150kwh,250kwh,301kwh,450kwhm 510kwh 사용량 전기요금 출력 ) > 6개

 

계산기 코드를 만들었을때 기능별 메서드분리와 중복된 코드를 제거해야한다고 말씀해주셔서

아직 수정해야하지만 그런 점을 한번 더 생각해보고 만들수 있었던거같다

전기요금 계산법이 헷갈려서 시간을 많이 썼다ㅠ 수학이랑 안친해..

 

1. 사용량이 구간에 따라서 나눠져있다

2. 구간별로 따로 계산해서 합한다 사용구간*금액

3.고정된 값을 배열에 담아서 순회하면서 계산 가능 (수정이 용이해진다 효율성) 

 

package com.codestates;

public class ElectricityUsageCalculator {
      public static void main(String[] args) {
          System.out.println("=".repeat(25));
          System.out.println(" 주택용 전기요금(저압) 계산기 ");
          System.out.println("=".repeat(25));
      }

          //TODO:

          // 1. 100kwh 이하인 경우 전력당 60.7 원이 부가됩니다.

          // 2. 100kwh 초과인 경우 125.9원 부과됩니다.

          // 3. 200kwh 초과인 경우 280.6원 부과됩니다.

          // 4. 300kwh 초과인 경우 417.7원 부과됩니다.

          // 5. 400kwh 초과인 경우 187.9원 부과됩니다.

          // 6. 500kwh 초과인 경우 670.6원 부과됩니다.

          /**
           * 예)
           * 전기 사용량이 250kWh인 경우,
           * 1) 100 kWh 이하의 구간(100kWh) 요금 -> 100 * 60.7
           * 2) 100 kWh 초과의 구간(100kWh) 요금 -> 100 * 125.9
           * 3) 200 kWh 초과의 구간(50kWh) 요금 -> 50 * 280.6
           *
           * 합계 = (100 * 60.7) + (100 * 125.9) + (50 * 280.6)
           */

      private static double powerExpense(double electricityCost) {
            double result = 0.0;

            if( electricityCost <= 100) {
                // 전기 사용량이 100kwh 이하인 경우
                result += electricityCost * 60.7; // 요금 = 사용량 * 단가

               } else if ( electricityCost <= 200) {
                // 전기 사용량이 100kwh 초과 200kwh 이하인 경우
                result += 100 * 60.7 + ( electricityCost - 100) * 125.9; //처음 100kwh 사용량 * 60.7 + 나머지 * 단가
               } else if ( electricityCost <= 300) {
                // 전기 사용량이 200kwh 초과 300kwh 이하인 경우
                result += 100 * 60.7 + 100 * 125.9 + ( electricityCost - 200) * 280.6;
                // 처음 100 * 60.7 + 다음 100kwh * 125.9 + 나머지사용량 * 단가
               } else if ( electricityCost <= 400) {
                // 전기 사용량이 300kwh 초과 400kwh 이하인 경우
                result += 100 * 60.7 + 100 * 125.9 + 100 * 280.6 + ( electricityCost - 300) * 417.7;
                // 처음 100 * 60.7 + 다음 100kwh * 125.9 + 다음 100 *280.6 + 나머지사용량*단가
               } else if ( electricityCost <= 500) {
                //전기 사용량이 400kwh 초과 500kwh 이하인 경우
                result += 100 * 60.7 + 100 * 125.9 + 100 * 280.6 + 100 * 417.7 + ( electricityCost - 400) * 187.9;
               } else if (electricityCost <= 600) {
                //전기 사용량이 500kwh 초과 600kwh 이하인 경우
                result += 100 * 60.7 + 100 * 125.9 + 100 * 280.6 + 100 * 417.7 + 100 * 187.9 + ( electricityCost - 500) * 670.6;
               }

                return result;
        }
}

처음에 보고 큰 수 부터 입력해서 계산하는 방식으로 하고싶었는데

아직 어떻게 해야할지 감이 안잡혀서 하나하나 더하는 방식으로 일단 만들어봤다

 

문제를 받으면 항상 필요한 값을 표현하기 위한 코드 생각해내서 어떻게 작성해야하는지

머뭇거리는데 이문제도 그런 느낌이였다...

 

솔루션코드

public class ElectricityUsageCalculator {
    public static void main(String[] args) {
        System.out.println("=".repeat(25));
        System.out.println(" 주택용 전기요금(저압) 계산기 ");
        System.out.println("=".repeat(25));

        int[] usages = new int[]{99, 150, 250, 301, 450, 510};

        for(int idx = 0; idx < usages.length; idx++) {
            // 현재 금액은 usages[idx]
                // usages[idx] * 구간별 금액을 계산하면 총액을 계산할 수 있다.
            int usage = usages[idx]; // 현재 전력 사용량
            double result = 0.0;

            if(usage > 500) {
                result += (usage - 500) * 670.6;
                usage = 500;
            }
            if(usage > 400) {
                result += (usage - 400) * 417.7;
                usage = 400;
            }
            if(usage > 300) {
                result += (usage - 300) * 280.6;
                usage = 300;
            }
            if(usage > 200) {
                result += (usage - 200) * 187.9;
                usage = 200;
            }
            if(usage > 100) {
                result += (usage - 100) * 125.9;
                usage = 100;
            }
            result += usage * 60.7;
            System.out.println(result);
        }
    }
}

글만 읽고 문제만 냅다 풀어서 그런지

아직 이론을 보면 바로 와닿지는 않는다..

그냥 진짜 가나다 배우는 수준..?

한번보고 천재마냥 다 이해하고 외우는것도 못하지만

어쨌든 하면 하는 만큼 느는건 확실하다

그래서 난 여러번 보고 다시 새겨야한다 잘 까먹는 사람이기 떄문이다

단어를 보고 머리는 아는데 말로 설명을 잘 못하겠다...

감(?)대로 느낌대로? 습득하는게 문제인거같다

 

그래도 전에 아주 조금! 배웠던게 남아있어서

다시 배우니까 기억이 조금씩 나고

나름 문제도 풀수있었다( but 한 문제에 최소 30분 넘게 걸림....ㅋㅋ)

느리지만 아직 배워가는 과정이니까 그러려니하고 지켜봐야겠다.

 

자바랑 더 친숙해지기 위해 반복학습이랑 문제를 많이 풀어봐야지

 

집중도랑 피로도때문에 하루 공부시간이 적어서 고민이다

배울건 많고 시간이 부족한데 또 쉬기도 해야하고!

공부에 최적화 된편이 아닌데...

그래도 재미가 있어서 더 배우고 싶다!

 

 

'기록🍌 > 회고' 카테고리의 다른 글

TIL 231218  (1) 2023.12.18
TIL 231204  (4) 2023.12.04
TIL 231121  (0) 2023.11.21
TIL 231114  (0) 2023.11.14
TIL 231106  (1) 2023.11.06