알고리즘, MySQL, 후발대 수업

우정·2023년 1월 12일
0

[내일배움캠프] TIL

목록 보기
39/50

프로그래머스

짝수는 싫어요

  • Java
class Solution {
    public int[] solution(int n) {
        int[] answer = new int[(n+1)/2];
        for (int i = 1; i <= n; i++) {
            if (i % 2 != 0) {
                answer[i/2] = i;
            }
        }
        return answer;
    }
}
  • 다른 풀이
import java.util.stream.IntStream;
class Solution {
    public int[] solution(int n) {
        return IntStream.rangeClosed(0, n).filter(value -> value % 2 == 1).toArray();
    }
}
import java.util.List;
import java.util.ArrayList;
class Solution {
    public int[] solution(int n) {
        List<Integer> answer = new ArrayList<>();
        for(int i=1; i<=n; i++){
            if(i % 2 == 1){
                answer.add(i);
            }
        }
        return answer.stream().mapToInt(x -> x).toArray();
    }
}
import java.util.*;
class Solution {
    public ArrayList solution(int n) {
        ArrayList<Integer> answer = new ArrayList<Integer>();
        for(int i=1; i<=n; i++){
          if(i%2 != 0) {
              answer.add(i);
          } 
        }
        return answer;
    }
}

stream 사용 방식은 아직도 잘 모르겠구먼,,

  • Python
def solution(n):
    answer = [i for i in range(1, n+1) if i % 2 ==1]
    return answer
  • 다른 풀이
def solution(n):
    return [i for i in range(1, n+1, 2)]

MySQL

제약조건

  • 데이터의 무결성을 지키기 위해 제한하는 조건
  • Primary Key 제약조건
create table member
( 	mem_id char(8) not null primary key,
    mem_name varchar(10) not null,
    height tinyint unsigned null
);

혹은

create table member
( 	mem_id char(8) not null primary key,
    mem_name varchar(10) not null,
    height tinyint unsigned null
);

alter table member add constraint primary key (mem_id);
  • Foreign Key 제약조건
create table buy
( 	num int auto_increment not null primary key,
    mem_id char(8) not null,
    prod_name char(6) not null,
    foreign key(mem_id) references member(mem_id)
);
  • member 테이블에서 mem_id(PK) 를 변경하거나, member를 삭제하면?
    -> 일대다 (PK-FK) 관계를 맺은 상태에서는 제약조건으로 오류를 발생 시킴
  • 해결 방법 : on update cascade, on delete cascade를 입력해주면 참조 테이블의 데이터도 같이 변경, 삭제해줌
create table buy
( 	num int auto_increment not null primary key,
		mem_id char(8) not null,
    prod_name char(6) not null,
    foreign key(mem_id) references member(mem_id) 
    on update cascade 
    on delete cascade
);
  • Unique 제약조건
    • 중복되지 않는 유일한 값만 입력 가능
  • Check 제약조건
    • 조건에 만족되는 값만 입력 가능
  • Default 정의
    • 값을 입력하지 않았을 때 자동으로 입력될 값을 미리 지정해줌
  • Null 값 허용
    • NULL or NOT NULL
drop table buy, member; -- 실습을 위해 테이블 모두 삭제

create table member
( 	mem_id char(8) not null primary key,
		mem_name varchar(10) not null,
    email char(30) null unique,
		height tinyint unsigned null check (height >= 100),
    phone1 char(3) default '02'
);

후발대 수업

오버로딩

  • 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것

    • 매개변수의 개수나 타입이 다르면 같은 이름을 사용해서 매서드를 정의할 수 있음
  • 조건

    • 메서드 이름이 같아야 함
    • 매개변수의 개수나 타입이 달라야 함

오버라이딩

  • 부모클래스로부터 상속받은 메서드의 내용을 변경하는 것

  • 조건

    • 자식클래스에서 오버라이딩하는 메서드는 부모클래스의 메서드와 선언부가 서로 일치해야 함
    • 선언부(이름, 매개변수, 반환타입)

다형성

  • 다양한 형태 또는 특성을 가짐
  • 자식 클래스의 인스턴스(객체)가 부모의 객체로도 사용될 뿐만 아니라 자식 클래스의 객체로도 사용될 수 있는 상황
  • 하지만 부모 클래스의 인스턴스는 자식 클래스의 인스턴스로 사용될 수는 없음

0개의 댓글

관련 채용 정보