전체 글 2434

백준 11722번 가장 긴 감소하는 부분 순열

문제 링크입니다: https://www.acmicpc.net/problem/11722http://jaimemin.tistory.com/317와 비슷한 문제였습니다. /* 수열 A가 주어졌을 때, 가장 긴 감소하는 부분 수열을 구하는 프로그램을 작성하시오. */ #include #include using namespace std; const int MAX = 1000; int N; //수열의 길이 int cache[MAX + 1], arr[MAX]; //arr[start]에서 시작하는 감소 부분 수열 중 최대 길이 반환 int LDS(int start) //Least Decreasing Sequence { int &result = cache[start + 1]; if (result != -1) return..

알고리즘/BOJ 2018.02.25

algospot WITHDRAWAL

문제 링크입니다: https://algospot.com/judge/problem/read/WITHDRAWAL기존의 이분법 문제와는 달리 decision 함수에 전달한 매개변수를 정하기 어려운 문제였습니다.그래서 문제를 좀 유연하게 접근하여 ((전달할 매개변수)*수강인원 - 등수)의 값을 비교하며 값을 구했습니다. /* 중략 */ #include #include #include #include using namespace std; const int MAX = 1000; int N, K; //수업 갯수, 장학금 타기 위한 최소 수업 갯수 int classmate[MAX], rating[MAX]; //수업 인원, 등수 //결정 문제: 누적 등수 average가 되도록할 수 있나? bool decision(do..

algospot KAKURO1

문제 링크입니다: https://algospot.com/judge/problem/read/KAKURO1http://jaimemin.tistory.com/416?category=985009과 반대로 카쿠로 퍼즐의 답이 주어졌을 때 http://jaimemin.tistory.com/416?category=985009의 입력양식을 출력해내는 문제였습니다.물론 난이도는 KAKURO2와는 비교도 안되게 쉬웠습니다.#include #include #include //memset using namespace std; const int MAX = 20; int N; int board[MAX][MAX]; vector h; //가로 (y, x, 0, 힌트) vector v; //세로 (y, x, 1, 힌트) void ho..

algospot CANADATRIP

문제 링크입니다: https://algospot.com/judge/problem/read/CANADATRIP이번에도 이분법을 이용하여 푸는 문제였습니다.표지판을 일일히 나열하면 언젠가는 찾을 수 있겠지만 표지판의 개수가 (2^31 - 1)개일수도 있기 때문에 이분법을 이용하여 풀어야 시간 안에 동작합니다. /* 중략 */ #include #include using namespace std; const int MAX = 5000; const int drive = 8030000; //총 주행 거리 int N, K; //도시의 수, K번째 표지판 //도시까지의 거리, markStart미터 전부터 표지판 시작, interval미터마다 표지판 int length[MAX], markStart[MAX], interv..

algospot ARCTIC

문제 링크입니다: https://algospot.com/judge/problem/read/ARCTIChttp://jaimemin.tistory.com/421?category=985009와 유사하게 이분법을 사용하여 푸는 문제였습니다.한가지 흠이라면 ARCTIC은 북극이므로 제목을 북극기지로 지었어야했다는 점입니다. /* 남극에는 N 개의 탐사 기지가 있습니다.남극의 겨울은 혹독하기 때문에, 남극의 겨울이 찾아오면 탐사 기지들간의 왕래가 중단됩니다. 겨울에도 서로 통신하며 연구를 지속하기 위해, N 개의 무전기를 구입해 각 탐사 기지에 배치하려 합니다. 이 때, 두 탐사 기지 사이의 거리가 D 라고 하면, 무전기의 출력이 D 이상이어야만 통신이 가능합니다. 모든 탐사 기지에는 똑같은 무전기가 지급됩니다. ..

동물의 숲 2/23 업데이트 내용

2018년 2월 23일 오후에 업데이트된 내용을 전해드리겠습니다. 동물의 숲: 포켓캠프를 이용해주셔서 감사합니다!다음 업데이트 내용에 대해 살짝 보여드리겠습니다. 낚시 대회바다에서 낚시 대회가 진행될 예정입니다!낚시 대회 한정 특별 물고기가 등장할 예정입니다-최대한 많이 잡고 Chip에게 전하세요. 물고기의 양과 크기에 따라 의상과 가구를 Chip으로부터 보상으로 받을 수 있습니다. 곤충과 물고기의 사이즈 기록곧, 잡은 곤충과 물고기를 크기가 기록이 됩니다!Catalog 항목에서 각 종류마다 제일 큰 사이즈와 작은 사이즈가 기록이 될 것입니다. 정원 가꾸기가 쉬워질 것입니다.곧, 정원에서 동시에 꽃을 심고, 수확하고 물을 줄 수 있는 기능이 생깁니다.앞으로도 동물의 숲: 포켓캠프를 즐겨주셨으면 좋겠습니다..

카테고리 없음 2018.02.23

codewars: Count ones in a segment

문제 링크입니다: http://www.codewars.com/kata/count-ones-in-a-segment/train/cpp4 KYU 문제다보니 완전탐색법으로 문제를 풀 경우 시간초과가 발생합니다.따라서 이진수를 쭉 나열해보고 규칙을 찾아봤더니 비트를 사용하면 비교적 간단하게 풀 수 있는 문제였습니다!물론 규칙을 찾아내는데 엄청 오랜 시간이 걸렸습니다. /* left와 right라는 숫자가 주어졌을 때(1

백준 11055번 가장 큰 증가 부분수열

문제 링크입니다: https://www.acmicpc.net/problem/11055LIS(Largest Increasing Sequence) 문제와 비슷하지만 증가 부분 수열의 최대 길이가 아닌 최대합인 점에서 달랐습니다. /* 수열 A가 주어졌을 때, 그 수열의 증가 부분 수열 중에서 합이 가장 큰 것을 구하는 프로그램을 작성하시오. */ #include #include #include //memset using namespace std; const int MAX = 1000; int N; int arr[MAX]; int cache[MAX]; int maxSum(void) { int result = 0; for (int i = 0; i < N; i++) { cache[i] = arr[i]; //i번째..

알고리즘/BOJ 2018.02.22

백준 11048번 이동하기

문제 링크입니다: https://www.acmicpc.net/problem/11048동 서 남 북을 고려하지 않고 동, 남, 남동 방향만 고려하면 됬기 때문에 쉽게 풀 수 있던 문제였습니다./* 준규는 N×M 크기의 미로에 갇혀있다. 미로는 1×1크기의 방으로 나누어져 있고, 각 방에는 사탕이 놓여져 있다. 미로의 가장 왼쪽 윗 방은(1, 1)이고, 가장 오른쪽 아랫 방은(N, M)이다. 준규는 현재(1, 1)에 있고, (N, M)으로 이동하려고 한다.준규가(r, c)에 있으면, (r + 1, c), (r, c + 1), (r + 1, c + 1)로 이동할 수 있고, 각 방을 방문할 때마다 방에 놓여져있는 사탕을 모두 가져갈 수 있다.또, 미로 밖으로 나갈 수는 없다. 준규가(N, M)으로 이동할 때, ..

알고리즘/BOJ 2018.02.22