WorkHard 66

[코딩테스트] JAVA 프로그래머스 연습문제 - 콜라 문제

문제 : 프로그래머스 LV1. 콜라 문제 - 풀이 오래전 유행했던 콜라 문제가 있습니다. 콜라 문제의 지문은 다음과 같습니다. - 콜라 빈 병 2개를 가져다주면 콜라 1병을 주는 마트가 있다. 빈 병 20개를 가져다주면 몇 병을 받을 수 있는가? (단, 보유 중인 빈 병이 2개 미만이면, 콜라를 받을 수 없다.) 문제를 풀던 상빈이는 콜라 문제의 완벽한 해답을 찾았습니다. 상빈이가 푼 방법은 아래 그림과 같습니다. 우선 콜라 빈 병 20병을 가져가서 10병을 받습니다. 받은 10병을 모두 마신 뒤, 가져가서 5병을 받습니다. 5병 중 4병을 모두 마신 뒤 가져가서 2병을 받고, 또 2병을 모두 마신 뒤 가져가서 1병을 받습니다. 받은 1병과 5병을 받았을 때 남은 1병을 모두 마신 뒤 가져가면 1병을 또..

[코딩테스트] JAVA 프로그래머스 연습문제 - 푸드 파이트 대회

문제 : 프로그래머스 LV.1 푸드 파이트 대회 - 풀이 수웅이는 매달 주어진 음식을 빨리 먹는 푸드 파이트 대회를 개최합니다. 이 대회에서 선수들은 1대 1로 대결하며, 매 대결마다 음식의 종류와 양이 바뀝니다. 대결은 준비된 음식들을 일렬로 배치한 뒤, 한 선수는 제일 왼쪽에 있는 음식부터 오른쪽으로, 다른 선수는 제일 오른쪽에 있는 음식부터 왼쪽으로 순서대로 먹는 방식으로 진행됩니다. 중앙에는 물을 배치하고, 물을 먼저 먹는 선수가 승리하게 됩니다. 이때, 대회의 공정성을 위해 두 선수가 먹는 음식의 종류와 양이 같아야 하며, 음식을 먹는 순서도 같아야 합니다. 또한, 이번 대회부터는 칼로리가 낮은 음식을 먼저 먹을 수 있게 배치하여 선수들이 음식을 더 잘 먹을 수 있게 하려고 합니다. 이번 대회를..

[SQLD 개발자] 기출문제 공부(37회)

1. 슈퍼 / 서브 타입 데이터 모델의 변환타입? One To One Type 슈퍼타입과 서브타입을 개별 테이블로 도출한다. 테이블의 수가 많아서 조인이 많이 발생하고 관리가 어렵다. Plus Type 슈퍼타입과 서브타입 테이블로 도출한다. 조인이 발생하고 관리가 어렵다. Single Type 슈퍼타입, 서브타입을 하나의 테이블로 도출하는 것이다. 조인성능이 좋고 관리가 편리하지만, I / O성능이 나쁘다. 2. 데이터베이스 모델링의 순서? 데이터 모델링을 할 때 정규화를 정확하게 수행 데이터베이스 용량산정 수행 데이터베이스에 발생되는 트랜잭션 유형 파악 용량과 트랜잭션의 유형에 따라 반정규화 수행 이력모델의 조정, PK / FK조정, 슈퍼타입 / 서브타입 조정 수행 성능관점에서 데이터 모델 검증 3. ..

WorkHard/자격증 2023.03.16

[SQLD 개발자] 기출문제 공부(33회)

1. B-TREE인덱스는 브랜치 블록과 리프 블록으로 구성되며 브랜치 블록은 분기를 목적으로 하고 리프 블록은 인덱스를 구성하는 컬럼의 값으로 정렬된다. 2. 데이터베이스 절차적 데이터 조작어(procedural DML) : 사용자가 어떤 데이터를 원하고 해당 데이터를 얻으려면 어떻게 처리해야 하는지 명세한다. 비절차적 데이터 조작어(nonprocedural DML) : 사용자가 어떤 데이터를 원하는지만 명세한다. 호스트 프로그램 속에 삽입되어 사용되는 DML명령어들을 데이터 부속어(Date Sub Language)라고 한다. 명령어의 종류에 따른 설명 데이터 조작어(DML : Date Manipulation Language) SELECT : 데이터베이스에 들어 있는 데이터를 조회하거나 검색하기 위한 명..

WorkHard/자격증 2023.03.15

[코딩테스트] JAVA 프로그래머스 연습문제 - 문자열 나누기

문제 : 프로그래머스 LV1. 문자열 나누기 - 풀이 문자열 s가 입력되었을 때 다음 규칙을 따라서 이 문자열을 여러 문자열로 분해하려고 합니다. 1. 먼저 첫 글자를 읽습니다. 이 글자를 x라고 합시다. 2. 이제 이 문자열을 왼쪽에서 오른쪽으로 읽어나가면서, x와 x가 아닌 다른 글자들이 나온 횟수를 각각 셉니다. 처음으로 두 횟수가 같아지는 순간 멈추고, 지금까지 읽은 문자열을 분리합니다. 3. s에서 분리한 문자열을 빼고 남은 부분에 대해서 이 과정을 반복합니다. 남은 부분이 없다면 종료합니다. 4. 만약 두 횟수가 다른 상태에서 더 이상 읽을 글자가 없다면, 역시 지금까지 읽은 문자열을 분리하고, 종료합니다. 문자열 s가 매개변수로 주어질 때, 위 과정과 같이 문자열들로 분해하고, 분해한 문자열..

[SQLD 개발자] 기출문제 공부(33회)

1. 파티션 분할 기법? 범위 분할(Range Partitioning) 분할 키 값이 범위 내에 있는지 여부로 구분한다. 예를 들어, 우편번호를 분할 키로 수평 분할하는 경우이다. 목록 분할(List Partitioning) 값 목록에 파티션을 할당 분할 키 값을 그 목록에 비추어 파티션을 선택한다. 예를 들어, Country라는 컬럼의 값이 Iceland, Norway, Sweden, Finland 중 하나에 있는 행을 가져올 때 북유럽 국가 파티션을 구축할 수 있다. 해시 분할(Hash Partitioning) 해시 함수의 값에 따라 파티션에 포함할지 여부를 결정한다. 데이터의 관리보다는 성능 향상에 목적을 둔다. 예를 들어, 4개의 파티션으로 분할하는 경우 해시함수는 0 ~ 3의 정수를 돌려준다. ..

WorkHard/자격증 2023.03.14