Song[coding diary index]

Song 배열에 코딩 흔적 남겨두기

내려가기 2

백준 9519번 졸려(c++)

구현, 문자열, 시뮬레이션 알고리즘 문제이다.  알고리즘 풀이눈을 깜빡이는 횟수가 최대 10억인거로 보아서, 일반적인 반복문으로는 시간복잡도를 초과할 것이다.그러므로 눈을 깜빡이는 횟수 N을 줄이는 어떤 방법이 존재한다.이때, 주어진 문자열이 다시 원래대로 돌아오는 사이클이 존재하는 것을 알 수 있다.또 사이클이 문자열의 길이와 상관없이 불규칙적인 것 또한 아는 것이 중요하다. 그러므로, 먼저 사이클의 횟수를 구하고 사이클의 횟수보다 눈을 깜빡이는 횟수가 더 많다면둘을 나눠 남는 나머지를 구한다.해당 나머지는 사이클을 돌고 난 뒤, 마저 깜빡이는 수이다.해당 나머지만큼 실제로 문자를 옮겨준다면 문제는 풀린다.-> 문자열의 이동규칙은 코드를 보며 파악하자.#include #include using name..

알고리즘 2024.08.06

백준 2096번 내려가기(c++)

https://www.acmicpc.net/problem/2096문제 분석문제 조건생각보다 단순한 문제다. 행은 N(입력값), 열은 3인 배열에서 이동할 수 있는 제약이 있고 이들의 최대/최소값을 구하는 문제이다. 문제를 보자마자 무조건 dp겠다 싶었다. 그래서... dp임은 인지했지만, 답이 잘 나왔음에도 메모리가 초과되었다는 것을 보았다. 4MB????🤔: 대체 4MB는 뭐야?! 문제에서는 N의 최대값은 10만인데... 입력값만 받아도 최대 30만 데이터를 저장하는 배열을 만들어야하는데?이걸 어떻게 풀라는거야...문제 풀이DP문제를 풀기 위해서는 무조건 이전에 계산했던 최적의 값들을 무조건 저장해둬야한다고 생각했다... 그래서 처음 생각했던 오답풀이는 이러하다... ⚠️오답풀이!!!⚠️☠️ 1. 입..

알고리즘 2024.05.23
LIST