본문 바로가기

전체 글

(26)
BOJ - 2133번 타일 채우기 www.acmicpc.net/problem/2133 2133번: 타일 채우기 3×N 크기의 벽을 2×1, 1×2 크기의 타일로 채우는 경우의 수를 구해보자. www.acmicpc.net 3x홀수 인 경우에는 만들 수가 없으므로 다 0이다. DP[2] = 3이고 DP[4] = 11이다. 2개짜리 2개를 붙여서 만들 수 있으므로 3x3인데 특이케이스가 2개가 더 생겨서 11이 된것이다. DP[6]도 그려보면 4개짜리에 2개짜리를 붙인 11x3개를 제외하고 특이케이스가 2개가 더 생긴다. 근데 우리가 놓친 특이케이스가 또 있다. 11x3은 4개짜리 오른쪽(혹은 왼쪽)에 2개짜리를 붙이는 경우를 뜻하는데 대부분의 경우는 좌우대칭이 고려되나 4개짜리를 계산할 때 나타난 특이케이스에 대해서는 고려가 안된다. 그 특..
BOJ - 1699번 제곱수의 합 http://acmicpc.net/problem/1699 1699번: 제곱수의 합 어떤 자연수 N은 그보다 작거나 같은 제곱수들의 합으로 나타낼 수 있다. 예를 들어 11=32+12+12(3개 항)이다. 이런 표현방법은 여러 가지가 될 수 있는데, 11의 경우 11=22+22+12+12+12(5개 항)도 가능하다 www.acmicpc.net 며칠동안 못 푼 문제다. 최소 몇개의 제곱수로 표현 가능한가? 를 찾는 문제다. 일단 DP[i] = i로 초기화 한다. 왜냐 1을 i개 더하는게 최댓값이니까 그리고 제곱수를 작은것부터 가져와서 생각한다. 제곱수를 k, 해당 수를 N이라고 한다면 DP[N] 이랑 DP[N-k]+1 중에 작은 것으로 DP[N]에 다시 값을 넣어주면 된다. 코드는 다음과 같다. /* acm..
BOJ - 1463번 1로 만들기 https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 정수가 주어졌을 때 1을 만드는 연산의 최소횟수를 구하는 문제다. 연산의 종류는 다음과 같다. 3의 배수면 3으로 나눌 수 있다. 2의 배수면 2로 나눌 수 있다. 1을 뺄 수 있다. 간단하게 생각할 수 있다. 어떤 수 N에 대해서 1을 빼거나 2로 나누거나 3으로 나누거나 해보자. min_1 = N-1 div_2 = N/2 div_3 = N/3 이라고 생각하면 결국에 또 min_1도 위와같은 방식으로 1로 만들어야 할거고 div_2도, div_3도 1로 만들어야 한다. 작은 수부터 미리 계산했었다면 min(m..
BOJ - 10992번 별 찍기 - 17 https://www.acmicpc.net/problem/10992 10992번: 별 찍기 - 17 첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다. www.acmicpc.net 별 찍기 문제이다. 예시는 다음과 같다. 입력 1 출력 * 입력 2 출력 * *** 입력 3 출력 * * * ***** 입력 4 출력 * * * * * ******* 내가 푼 방법은 단순하다. 이중 for문을 i, j로 건다. i는 0부터 N-1까지로 하고, j는 1부터 N+i까지로 한다. N이 4일 때 보면 첫줄은 4번째에, 둘째줄은 5번째에, 셋째줄은 6번째에서 끝나니까 이렇게 걸었다. 마지막줄을 빼고는 첫번째 별에서 좌우로 한칸씩 멀어지는 구조다. 첫번째 별은 N에서 찍혔다. 그럼 그 다음은 N-1, N+1에서 찍히고 다..
[SQL] SQL 예제 풀기 - 1 MySQL 기초문법을 알았으니 이제 Query문을 짜서 문제를 풀어보자. https://sqlzoo.net/wiki/SELECT_from_WORLD_Tutorial SELECT from WORLD Tutorial - SQLZOO namecontinentarea populationgdp AfghanistanAsia6522302550010020343000000 AlbaniaEurope28748 2831741 12960000000 AlgeriaAfrica2381741 37100000 188681000000 AndorraEurope46878115 3712000000 AngolaAfrica1246700 20609294 100990000000 ... In this tutorial you w sqlzoo.net SE..
[MySQL] 데이터베이스 기초 - 3 이 글은 생활코딩 강의를 통해 본인이 공부한 내용을 정리한 글입니다. https://www.youtube.com/user/egoing2 생활코딩 일반인에게 프로그래밍을 알려주는 온라인/오프라인 활동 입니다. www.youtube.com 1. CREATE Table을 만들었으니 이제 데이터를 생성해보자. CREATE는 기본적으로 INSERT를 사용한다. INSERT INTO topic (title, description, created, author, profile) VALUES ('MySQL', 'MySQL is ...', NOW(), 'egoing', 'developer'); topic이라는 Table에 title, description, created, author, profile이라는 column들..
[MySQL] 데이터베이스 기초 - 2 본 글은 본인이 생활코딩 강의를 듣고 정리한 내용입니다. https://www.youtube.com/user/egoing2 생활코딩 일반인에게 프로그래밍을 알려주는 온라인/오프라인 활동 입니다. www.youtube.com 1. MySQL 실행 환경 변수까지 설정을 하면 cmd창에서 MySQL을 실행할 수 있다. C:\>mysql -uroot -p Enter Password: mysql> -uroot 는 root라는 user로 시작하겠다는 뜻이고, -p는 패스워드를 입력하겠다는 뜻이다. -p뒤에 바로 비밀번호를 입력해도 실행이 가능하지만 보안 상의 문제가 있으므로 저렇게 입력을 하면 비밀번호를 입력하라고 한다. 비밀번호까지 입력을 하면 mysql> 이라는 커맨드가 나타나게 된다. 2. 스키마의 생성과 제..
[MySQL] 데이터베이스 기초 - 1 DB수업은 학교에서 못들어서 여태 하나도 몰랐다. 근데 그게 말이 안된다. DB를 하나도 모르는게... 코드잇 강의를 알아보다가 너무 비싸서 생활코딩 유튜브를 통해서 공부를 시작했다. 강의를 들으며 배운 내용을 나름대로 정리하는 글이다. https://www.youtube.com/user/egoing2/featured 생활코딩 일반인에게 프로그래밍을 알려주는 온라인/오프라인 활동 입니다. www.youtube.com 1. 데이터베이스(Database) 데이터베이스란 무엇인가? 여러 사람이 공유할 목적으로 체계화하여 통합, 관리하는 데이터의 모임. 위키백과에 나와있는 정의이다. 별로 와닿지는 않는다. 2. 데이터베이스의 구조 강의 내용을 따라서 서술을 하자면, 데이터를 관리, 포함하는 태초에 획기적인 방법..