본문 바로가기

TIL

231023_TIL

오늘 한일 

  • 자바복습
  • 알고리즘 문제풀이

 

Java는 다중상속을 허용하지 않는다,

  • 다중상속을 허용하면 클래스간의 관계가 복잡해지는 문제가 생기기 때문이다.
  • 만약 자식 클래스에서 상속받는 서로 다른 부모 클래스들이 같은 이름의 멤버를 가지고 있다면?
  • 자식 클래스에서는 이 멤버를 구별할 수 있는 방법이 없다는 문제가 생긴다. 

 

추상 클래스 상속

추상 메서드는 extends 키워드를 사용하여 클래스에서 상속된다.

   

    public class 클래스명 extends 추상클래스명 {
    @Override
        public 리턴타입 메서드이름(매개변수, ...) {
           // 실행문
        }
   }

 

상속받은 클래스에서 추상 클래스의 추상 메서드는 반드시 오버라이딩 되어야 한다.

 

 

 

public class Solution29 {
    //문제 설명
    //머쓱이네 옷가게는 10만 원 이상 사면 5%, 30만 원 이상 사면 10%, 50만 원 이상 사면 20%를 할인해줍니다.
    //구매한 옷의 가격 price가 주어질 때, 지불해야 할 금액을 return 하도록 solution 함수를 완성해보세요.

    public int solution(int price) {
        double answer = 0;
        if(price>=100000&&price<300000){
            answer=price*0.95;
        }
        else if(price>=300000&&price<500000){
            answer=price*0.9;
        }
        else if(price>=500000){
            answer=price*0.8;
        }
        else{
            answer=price;
        }
        return (int)answer;
    }
}

if문을 사용하여 해결하였다.

 

public class Solution30 {
    //어떤 자연수를 제곱했을 때 나오는 정수를 제곱수라고 합니다.
    // 정수 n이 매개변수로 주어질 때, n이 제곱수라면 1을 아니라면 2를 return하도록 solution 함수를 완성해주세요.
    public int solution(int n) {
        int answer = 0;

        for(int i=1; i<=n; i++){
            if(i*i == n){
                answer = 1;
                break;
            }else{
                answer = 2;
            }
        }
        return answer;
    }

}

 

같은수를 곱했을떄 n이랑 같은 값이 나오면 1을 반환하고 아니면 2를 반환

 

public class Solution31 {
    //정수 n이 매개변수로 주어질 때, n 이하의 홀수가 오름차순으로 담긴 배열을 return하도록 solution 함수를 완성해주세요.

    public int[] solution(int n) {
        int k = 0;
        int[] answer;
        if(n%2==0){
            answer = new int[n/2];
        }
        else{
            answer = new int[n/2 +1];
        }

        for(int i=0;i<=n;i++){
            if(i%2==1){
                answer[k]=i;
                k++;
            }
        }
        return answer;
    }
}

 

배열의 크기를 먼저 짝수일떄는 2로 나누고 홀수일떄는 2로 나눈뒤 1을 더한다 그리고 k를 for문 밖에 선언후 홀수 일때마다 answer[k]에 대입해준다. 그리고 대입후 k의 크기를 1씩 늘려준다.

 

 

느낀점

  • 알고리즘을 꾸준히 풀고 자바 공부도 열심히 해야겠다.

 

'TIL' 카테고리의 다른 글

231025_TIL  (0) 2023.10.26
231024_TIL  (0) 2023.10.24
231019_TIL  (0) 2023.10.19
231018_TIL  (0) 2023.10.19
231017_TIL  (0) 2023.10.18