본문 바로가기

분류 전체보기186

[java] 객체 지향 프로그래밍 [1. 객체지향 프로그램] 객체 지향 프로그래밍(Object-Oriented Programming, OOP)이란? - 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것 - 각각의 객체는 메시지를 주고 받고 데이터를 처리할 수 있음 객체 지향 프로그래밍의 장점 - 코드의 재사용성이 높아짐 - 프로그램을 유연하고 변경이 용이하게 해줌 - 소프트웨어 개발과 보수를 용이하게 함 - 보다 직관적인 코드 분석을 가능하게 함 - 코드의 중복을 제거함 [2. 객체지향 언어의 특징] 캡슐화 (Encapsulation) - 모든 변수들과 메소드들을 클래스 단위로 모으는 것 - 객체 안에 데이터와 메소드를 숨기는 것 - 객체 속성과 메소드를 외부에.. 2023. 6. 4.
[데이터베이스] 6. 식별자 [1. 식별자 기본] 1. 식별자 : 여러 개의 속성으로 구성된 엔터티 내에서 엔터티를 대표할 수 있는 하나의 속성 - 키 ≠ 식별자 - 업무적으로 구분하는데 사용되는 것으로 논리 데이터 모델링 단계에서 사용 (키는 데이터베이스 테이블에 접근할 때 사용) 2. 식별자의 분류 (1) 대표성 여부 - 주식별자 : 속성들을 구분할 수 있으며 대표성 있음, 타 엔터티와 참조관계 연결 가능 - 보조식별자 : 속성들을 구분할 수 있으나 대표성은 없어 참조관계 연결 불가능 (2) 스스로 생성 여부 - 내부 식별자 : 엔터티 내에서 스스로 생성된 식별자 - 외부 식별자 : 타 엔터티와의 관계를 통해, 타 엔터티로부터 받아오는 식별자 (3) 속성의 수 - 단일 식별자 : 하나의 속성으로 구성된 식별자 - 복합 식별자 :.. 2023. 4. 28.
[java] 프로그래머스스쿨 연습문제 Lv.2 정렬 문제 모음 1. 최댓값과 최솟값 코딩테스트 연습 - 최댓값과 최솟값 | 프로그래머스 스쿨 (programmers.co.kr) 풀이 1. 숫자로 저장하기 위해 ArrayList numbers 선언해준다. 2. String 배열 temp에 s를 " "기준으로 자른 문자들을 넣어준다. 3. for문을 사용해서 temp의 원소를 정수형으로 변환하여 numbers에 넣어준다. 4. numbers를 오름차순으로 정렬해준다. 5. answer에 numbers의 최솟값과 최댓값을 더해준다. 회고 - ArrayList 오름차순 정렬 : Collections.sort(list); - ArrayList 내림차순 정렬 : Collections.sort(list, Collections.reverseOrder); - 레벨 2로 올라오면서 .. 2023. 4. 28.
[java] 프로그래머스스쿨 연습문제 Lv.2 DFS 문제 모음 1. 무인도 여행 코딩테스트 연습 - 무인도 여행 | 프로그래머스 스쿨 (programmers.co.kr) 풀이 1. 깊이 우선 탐색(DFS) 아이디어를 활용한다. 2. 전역변수로 배열 dx, 배열 dy, 2차원 배열 map, 2차원 배열 visited, 정수형 변수 row, col, cnt=0을 선언한다. 3. maps의 원소들을 한글자씩 정수로 바꿔 map에 복사한다. 3-1. 만약 X라면 -1을 저장한다. 4. answer을 리스트로 선언한다. 5. dfs라는 함수를 생성한다. 5-1. 현재 위치에서 이동할 수 있는 인접한 위치로 이동해가며 cnt에 값을 더한다. 5-2. 이동할 수 있는 곳이 더이상 없다면 cnt를 반환한다. 6. 반복문을 통해 map[행][열]의 값이 -1이 아니고 방문한 적이 .. 2023. 4. 28.
[java] 프로그래머스스쿨 연습문제 Lv.2 DP 문제 모음 2. 숫자 변환하기 코딩테스트 연습 - 숫자 변환하기 | 프로그래머스 스쿨 (programmers.co.kr) 풀이 1. 동적 계획법(Dynamic Programming) 아이디어를 활용한다. 2. 정수형 배열 dp를 크기 y+1로 선언한 후, 가능한 가장 큰 값(Integer.MAX_VALUE)으로 채운다. 3-1. 각 인덱스를 '만들 수 있는 값'으로 생각한다. 3-2. 각 인덱스 값을 만들기 위해 필요한 연산 횟수를 저장한다 3-3. 그러니까 """dp[ i ] 의 값은 곧 x가 i로 변환되기 위한 연산 횟수""" 인 것임 3-4. 이 과정은 memoization을 위한 것 4. 배열에 만들 수 있는 값을 인덱스로 삼아 최소 연산 횟수를 저장한다 4-1. for문으로 x부터 시작해 y까지 4-2. .. 2023. 4. 28.
[java] 프로그래머스스쿨 연습문제 Lv.2 Greedy 문제 모음 1. 호텔 대실 코딩테스트 연습 - 호텔 대실 | 프로그래머스 스쿨 (programmers.co.kr) 풀이 1. 체크인 시간과 체크아웃 시간을 저장하기 위해 2차원 배열 schedule을 선언한다. 1-1. split과 parseInt를 사용해 순서대로 저장한다. 1-2. 시간*60+분 1-3. 체크아웃 시간을 저장할 때에는 청소시간 10분을 추가로 더한다. 2. schedule을 체크인 시간순으로 정렬하고, 체크인 시간이 같다면 체크아웃 시간으로 정렬한다. 3. 우선순위 큐를 선언하여 schedule의 checkout 시간을 정렬된 순서대로 삽입한다. 4. 만약 우선순위 큐의 첫 번째 원소가 다음 입실 시간보다 작거나 같다면 poll, 퇴실시간을 큐에 추가 5. 그렇지 않다면 큐에 퇴실시간을 add .. 2023. 4. 28.