본문 바로가기

분류 전체보기

[백준 2217] 로프 (Java) https://www.acmicpc.net/problem/2217 2217번: 로프 N(1≤N≤100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하지만 여러 개의 로프를 병렬로 연결하면 각각의 로프에 걸리는 중량을 나눌 수 있다. k개의 로프를 사용하여 중량이 w인 물체를 들어올릴 때, 각각의 로프에는 모두 고르게 w/k 만큼의 중량이 걸리게 된다. 각 로프들에 대한 정보가 주어졌을 때, 이 로프들을 www.acmicpc.net 접근 방법 그리디 알고리즘으로 접근해야하는 문제이다. N개만큼 각 로프가 들 수 있는 중량을 입력 받는데 해당 로프만 사용하는 경우는 그 중량..
[부스트코스] MySQL 시작하기 (4/4) (DDL - create, drop) 데이터 정의어(Data Description Language, DDL) 데이터베이스를 정의하는 언어 데이터베이스를 정의하는 언어이며, 데이터리를 생성, 수정, 삭제하는 등의 데이터의 전체의 골격을 결정하는 역할 CREATE ALTER DROP ... MySQL 데이터 타입 테이블 생성 create table 테이블명( 필드명1 타입 [NULL | NOT NULL][DEFAULT ][AUTO_INCREMENT], 필드명2 타입 [NULL | NOT NULL][DEFAULT ][AUTO_INCREMENT], 필드명3 타입 [NULL | NOT NULL][DEFAULT ][AUTO_INCREMENT], ........... PRIMARY KEY(필드명) ); - 데이터 형 외에도 속성 값의 빈 값 허용 여부는..
[부스트코스] MySQL 시작하기 (3/4) (DML - select, insert, update, delete) 데이터 조작어(Data Manipulation Language, DML)의 종류 데이터 조작어는 모두 동사로 시작한다. 시작하는 동사에 따라서 다음과 같은 4가지 조작어가 있다. SELECT : 검색 INSERT : 등록 UPDATE : 수정 DELETE : 삭제 SELECT 구문의 기본문형 전체 데이터 검색 SELECT 뒤에 *를 기술함으로써 나타낼 수 있다. 예제: departments 테이블의 모든 데이터를 출력하시오 SELECT * FROM DEPARTMENT; 특정 컬럼 검색 SELECT 뒤에 컬럼을 콤마(,)로 구별해서 나열 예제: employee 테이블에서 직원의 사번(empno), 이름(name), 직업(job)을 출력하시오. (해당 테이블에 어떤 칼럼이 있는지는 desc 명령으로 확인할 ..
[백준 11057] 오르막 수 (Java) https://www.acmicpc.net/problem/11057 11057번: 오르막 수 오르막 수는 수의 자리가 오름차순을 이루는 수를 말한다. 이때, 인접한 수가 같아도 오름차순으로 친다. 예를 들어, 2234와 3678, 11119는 오르막 수이지만, 2232, 3676, 91111은 오르막 수가 아니다. 수의 길이 N이 주어졌을 때, 오르막 수의 개수를 구하는 프로그램을 작성하시오. 수는 0으로 시작할 수 있다. www.acmicpc.net 접근 방법 전형적인 DP문제라고 하는데 역시나 아직 많이 부족함을 느낀다. 2차원배열을 사용한다. dp[N][0~9]로 수의 길이가 N번일 때, 마지막 자리수가 0 ~ 9 경우의 개수를 각각 담는다. 우선 dp[1][0~9]는 모두 1로 따로 설정을 해둔다..
[백준 11052] 카드 구매하기 (Java) https://www.acmicpc.net/problem/11052 11052번: 카드 구매하기 첫째 줄에 민규가 구매하려고 하는 카드의 개수 N이 주어진다. (1 ≤ N ≤ 1,000) 둘째 줄에는 Pi가 P1부터 PN까지 순서대로 주어진다. (1 ≤ Pi ≤ 10,000) www.acmicpc.net 접근 방식 이전에 풀어봤던 문제(아마도 백준 2293 동전 문제인 듯하다)와 유사한 부분이 있어서 크게 어렵지 않게 풀 수 있었던 DP문제였다. 문제에서 주어진 예시를 가지고 설명을 하고자 한다. 민규가 구매하려고 하는 카드의 개수 N = 4 P1 = 1, P2 = 5, P3 = 6, P4 = 7 n개의 카드를 갖기 위해 지불하는 금액의 최댓값을 dp[n]이라고 하자. 만약 민규가 카드 1개를 갖는다고 ..
[백준 2156] 포도주 시식 (Java) https://www.acmicpc.net/problem/2156 2156번: 포도주 시식 효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규칙이 있다. 포도주 잔을 선택하면 그 잔에 들어있는 포도주는 모두 마셔야 하고, 마신 후에는 원래 위치에 다시 놓아야 한다. 연속으로 놓여 있는 3잔을 모두 마실 수는 없다. 효주는 될 수 있는 대로 많은 양의 포도주를 맛보기 위해서 어떤 포도주 잔을 선택해야 할지 고 www.acmicpc.net 접근 방법 다이나믹 프로그래밍 문제로 이전에 풀었던 백준2579 계단 오르기와 유사해서 비슷하게 접근하였다. DP[n]이 n번째 포도..
[부스트코스] MySQL 시작하기(2/4) (테이블 생성 및 조회) 데이터를 저장하는 공간 테이블(Table) - 마이트로소프트의 엑셀(Excel)을 실행하면 표가 나온다. 이러한 표에 각종 값을 저장할 수 있다. - 데이터베이스도 엑셀의 표와 유사한 테이블을 가질 수 있다. - 엑셀과 다른 점은 데이터베이스를 생성해도 테이블은 존재하지 않는다는 것이다. - 테이블을 사용하려면 테이블을 생성하는 SQL을 사용해야 한다. - 그리고, 테이블에 값을 저장하려면 저장하기 위한 SQL을 사용해야 한다. 테이블(table)의 구성요소 - 테이블: RDBMS의 기본적 저장구조. 한 개 이상의 column과 0개 이상의 row로 구성한다. - 열(Column): 테이블 상에서의 단일 종류의 데이터를 나타낸다. 특정 데이터 타입 및 크기를 가지고 있다. - 행(Row): Column들..
[부스트코스] MySQL 시작하기(1/4) (SQL이란?, DB 생성, 사용자 생성과 권한) 사람과 사람이 대화하기 위해서는 언어가 필요하다. 마찬가지로 DBMS에게 명령을 내릴 때도 특별한 명령이 필요하다. 이 명령을 SQL이라고 한다. SQL(Structured Query Language) - SQL은 데이터를 보다 쉽게 검색하고 추가, 삭제, 수정 같은 조작을 할 수 있도록 고안된 컴퓨터 언어이다. - 관계형 데이터베이스에서 데이터를 조작하고 쿼리하는 표준 수단이다. SQL 문법의 종류 3가지 - DML(Data Manipulation Language): 데이터를 조작하기 위해 사용한다. INSERT, UPDATE, DELETE, SELECT 등이 여기에 해당한다. - DDL(Data Definition Lanauage): CREATE, DROP, ALTER 등이 여기에 해당한다. - DC..