오늘 한일
- 자바복습
- 알고리즘 문제풀이
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 |