문제 원본: https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 풀이: 5kg 설탕봉지를 많이 사용할 수록 이득이라는 점에서 문제를 접근했다. while 반복문을 활용하여 N이 음수가 될 때까지 반복해준다. 만약 5로 나눠지지 않는 수가 들어왔다면 3kg 설탕 봉지로 한 번 덜고 횟수를 1 증가시켜준다. 그래도 반복문을 탈출했을 시 3과 5를 활용하여 나타낼 수 없는 수이기 때문에 -1 을 출력해준다. 소스코드: #include using namespace ..
혀노코딩
문제 원본: https://www.acmicpc.net/problem/1436 1436번: 영화감독 숌 666은 종말을 나타내는 수라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타워 www.acmicpc.net 풀이: 시작 값은 666이고, 666이 포함된 숫자를 작은 순서대로 찾는 것이므로, 666을 포함하는 숫자가 나오면 입력받은 수를 1씩 감소시킴으로써 반복문을 실행해주면 된다. 666을 포함하는 수를 find함수와 string::npos를 활용했다. 소스코드: #include using namespace std; int main(){ cin.tie(NULL); ios_base::sy..
문제 원본: https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 풀이: 처음에는 왼쪽 위가 각각 다르게 시작하는 8x8 짜리 배열을 직접 전역변수로 선언해서 한 원소 한 원소 비교하려 했다. 그러나 분류가 브루트 포스로 되어있는 데다가, 아무리 그래도 이렇게 무식하게 풀 순 없을 것 같았다. 어차피 원소 비교는 B, W 두 개만 비교하면 되기 때문에 1차원 배열에 B, W만 넣어서 두 경우의 체스판에 대해 모두 점검할 수 있게끔 했다. 소스..
문제 원본: https://www.acmicpc.net/problem/24313 24313번: 알고리즘 수업 - 점근적 표기 1 f(n) = 7n + 7, g(n) = n, c = 8, n0 = 1이다. f(1) = 14, c × g(1) = 8이므로 O(n) 정의를 만족하지 못한다. www.acmicpc.net [실패] 이 문제 또한 오랫동안 끙끙대다 한 번 좌절의 길로 가버렸다. 우선 기하학적으로 접근하려 했다. f(n) = a1 * n + a0 , c * g(n) = c * n으로 보아, g(n)은 원점을 지나는 일차함수임에 집중했다. 그리고 함수의 대소관계는 기울기가 같지 않은 이상 교점에서 결정될 수 있고, 그 교점과 n0의 위치 관계에 집중했다. 처음 생각했을 때는 정말 단순히 1부터 n0 ..
문제 원본: https://www.acmicpc.net/problem/1193 1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net [실패] 단계별로 풀어보기를 하던 중 실버 문제가 나와 당황했다. 그래도 일반 수학이라 가벼운 마음으로 참여했다. 이전의 단계별 문제에서는 패턴이 수열의 형태로 나타나서 이번 문제도, 분자와 분모 따로 놓고 수열의 규칙성을 찾아보려 노력했다. 분자: 1, 1, 2, 3, 2, 1, 1, 2, 3, 4, 5, 4, 3, 2, 1,, 분모: 1, 2, 1, 1, 2, 3, 4, 3, 2, 1, 1, 2, 3, 4, 5, 6, 5, 4, 3, 2, 1,,, 무언가 규칙은 보인다. 공통점은 최댓값까지 오름차순으로 출력하고..
매번 찾아보는 게 귀찮아서 여기에 한 번 박제해두고 다음에 찾아올 때 보면서 이해해봐야겠다 - launch.json { // IntelliSense를 사용하여 가능한 특성에 대해 알아보세요. // 기존 특성에 대한 설명을 보려면 가리킵니다. // 자세한 내용을 보려면 https://go.microsoft.com/fwlink/?linkid=830387을(를) 방문하세요. "version": "0.2.0", "configurations": [ { "name": "g++ build and debug active file", "type": "cppdbg", "request": "launch", "program": "${fileDirname}/${fileBasenameNoExtension}", "args": []..