분류 전체보기 (273) 썸네일형 리스트형 [C++/23843] 콘센트 ⛔ 단순히 기록용 입니다... 어떻게 풀었는가 생각도 다시 해보고 그러니까 아마도 도움은 안되실 것 같습니다.콘센트가 여러개 존재하고, 그 콘센트를 빠르게 채워넣어야지 빠른 시간안에 충전을 할 수 있을 것이다.비동기처럼 생각해서 문제를 해결했다. 일단 콘센트가 주어지면, 무조건 제일 오래 충전해야하는 애들을 집어넣고 그 뒤에 빈 곳에 넣어주면 됩니다. 근데 빈곳이 없고 전부 차있다면? 제일 적은 시간동안 충전하는 콘센트에 다시 충전하려고 꽂아주면 됩니다.그렇게 계속해서 비교해가면서 충전을 계속한 결과, 가장 긴 충전시간이 걸린 콘센트를 구하면 답이 나옵니다.우선순위 큐를 이용해서 가장 긴 충전시간을 구했고, 배열을 이용해서 계속해서 비교를 했습니다. 아마 더 나은 방법이 존재할 텐데 콘센트의 길이 입력.. [C++/20002] 사과나무 ⛔ 단순히 기록용 입니다... 어떻게 풀었는가 생각도 다시 해보고 그러니까 아마도 도움은 안되실 것 같습니다.요즘 골드 4~5 문제를 푸는데, 이건 저번에 풀었었는데 solved에 로그인하지 않아서 이전에 풀었던 문제였던 것이였다. 하지만, 아주 새로운 방식으로 문제를 해결했다.Dp + 구현으로 문제를 해결했습니다. 일단 N의 크기가 300이고 총 90,000이여도 1000만큼 곱해도 int의 범위를 벗어나지 않으니 상관이 없고, 대신 모든 정사각형의 범위를 다 따져야하기 때문에, 1부터 300까지 (0,0)부터, 전부를 뒤져봐야하기 때문에 단순 for문으로는 어마무시한 시간이 무조건 걸린다 판단해서, Dp인 누적합으로 미리 합을 구해놓고 문제를 해결했습니다. 오랜만에 Dp를 풀어보니까 아주 머리가 안돌.. [C++/1239] 차트 ⛔ 단순히 기록용 입니다... 어떻게 풀었는가 생각도 다시 해보고 그러니까 아마도 도움은 안되실 것 같습니다.이 문제는 굉장히 나에게 어려운 문제였다. 오랜만에 골드 문제를 풀어서 시간이 오래걸린줄 알았는데, 푸는 방법을 세네번은 바꿔가면서 풀이한 것 같다. 처음에는 많은 조건 분기와 같은 문제인 줄 알았다. 왜냐하면 n의 개수가 1부터 8이기 때문에 어떻게 조건을 다 조합하면 풀릴 것 이라고 생각했기 때문인데,예를 들어서 n이 1이라면? 100이기 때문에( n개의 합은 100) 당연히 중앙을 지나가는 선이 없다. 그리고 n이 2라면 50과50 또는 49 51 또는 48 52 이런식으로 나오기 때문에 50이 있다면 1개의 중앙을 지나가는 선이 있다. 근데 이런식이라면? 문제를 해결하는데 굉장히 어려움이 .. [C++/9519] 졸려 ⛔ 단순히 기록용 입니다... 어떻게 풀었는가 생각도 다시 해보고 그러니까 아마도 도움은 안되실 것 같습니다.졸린문제, 이 문제도 몇번의 눈 깜박임 후에 문자열이 바뀌는 문제입니다. 근데 그 눈 깜박임이 1,000,000,000번 까지 가능합니다. 그럼 100억을 다 할 수 있을까요? 절대 그럴 수 없습니다. 이런 문제는 Cycle이 존재하는지 확인하는 겁니다. 그렇다면 문제를 쉽게 해결할 수 있습니다. 그리고 문자열이 변경되는것은 어떤 규칙을 따르고 있는데, 옮겨지는 맨 마지막 index를 파악해야 문제를 쉽게 해결 할 수 있었습니다. 맨 마지막에서 부터 -= 2 씩 index를 옮겨가면서 규칙을 따를 수 있기 때문입니다. 맨 앞은 0부터 시작되기 때문에 상관이 없고, 맨 뒤는 index를 구해야합니다.. [C++/22252] 정보 상인 호석 ⛔ 단순히 기록용 입니다... 어떻게 풀었는가 생각도 다시 해보고 그러니까 아마도 도움은 안되실 것 같습니다.이 문제는 우선순위 큐와 맵을 사용해 문제를 푸는데, Input 조건을 잘 봐야했습니다.무엇이 문제냐, Q가 100,000개이고, 만약 갖고 있는 정보의 가치가 전부 100,000이라면? 그 개수의 합은 얼마가 될까? 당연히 인트로 10,000,000,000 을 잡을 수 있을까요? long long으로 변환을 해서 문제를 해결할 수 있습니다.정답 코드는 이렇습니다. 그래도 map에 priority_queue도 넣어보고 아주 재미난 문제여서 작성해봅니다. 그리고 우선순위 큐는 기본적으로 내림차순을 갖고있기 때문에, 오름 차순을 하고자 한다면? -를 넣어서 바꿔주던지 아니면 greater였나.. 그.. [C++/27438] 행렬 연산 ⛔ 단순히 기록용 입니다... 어떻게 풀었는가 생각도 다시 해보고 그러니까 아마도 도움은 안되실 것 같습니다.꽤나 재밌는 문제를 풀었습니다. 일단 입력값이 가로 세로의 곱이 500,000이며 주어지는 명령이 500,000개가 나올 수 있습니다. 당연히 500,000만큼의 이차원 배열을 만들 수 없습니다. 하지만, 가로와 세로의 길이는 1 그렇다면? 우리는 어떻게 풀어야할까? 그렇다면 처음에 풀이를 했던 방법을 설명하겠습니다. 첫번째는 배열을 생성하는 것보다는? 그냥 map에 좌표를 key로 등록해서 value값을 늘려주는 방식을 채택했습니다. 그렇게 한다면? 우리의 문제였던 배열을 50만 만큼 할당하지 못했던 문제를 해결할 수 있습니다. 하지만 이는 시간초과의 문제를 발생시킵니다.왜냐하면 배열이 없지만,.. [C++/26168] 배열 전체 탐색하기 ⛔ 단순히 기록용 입니다... 어떻게 풀었는가 생각도 다시 해보고 그러니까 아마도 도움은 안되실 것 같습니다.이분탐색으로 문제를 해결합니다. 7월에는 블로그에 글을 안올렸지만, 사실 문제는 꾸준히 쉬운 레벨이여도 생소한 문제를 보면 바로 문제를 풀었습니다. 이 문제는 오랜만에 이분탐색을 풀면서 중복되는 값의 첫번째 값과 마지막 값을 구할 수 있다는 것을 처음 알았습니다(?) 이분 탐색 문제는 아주 오랜만에 풀어서 굉장히 시간이 오래걸렸습니다.아래는 정답코드입니다. 이 문제는 추후에 다시 해결하면서 다시 이분탐색을 자유자재로 써볼 수 있게 구현해봐야겠습니다.#include#include#define MAX 100100using namespace std;// 끝과 끝일떄 문제 26168 int n,m;lon.. [C++/18115] 카드놓기 ⛔ 단순히 기록용 입니다... 어떻게 풀었는가 생각도 다시 해보고 그러니까 아마도 도움은 안되실 것 같습니다.각 명령에 따라서 구현을 진행하면 되는 문제입니다. 하지만, 문제를 천천히 읽어보면? 카드는 [5,4,3,2,1]로 쌓여야합니다. 그리고 각 명령이 앞에서도 빼고 뒤에서도 빼고 중간에서도 빼는 그러한 문제이기 때문에 자료구조는 deque을 사용하기로 했습니다. 문제를 해결하면서 주어진 입력대로 하면 될것 같지만? 카드를 되돌리기 위해선? 거꾸로 진행을 해야하지 않나 생각을 했지만, 일단 정방향대로 문제를 해결하려했습니다. 하지만, 그렇게되면? 뒤에서 뽑아온 숫자들은 순서가 반대가 되기 때문에 뽑아왔던 순서에서 반대로 진행하면서 다시 원상복귀를 시켜야합니다. 생각을 할 수 있겠죠? 거꾸로 하면 그대.. 이전 1 ··· 3 4 5 6 7 8 9 ··· 35 다음