백준온라인저지 [코딩테스트 C++] RGB거리 RGB거리 문제 분석 최대 입력이 1000이므로 O(N^2) 정도의 알고리즘이면 충분하다. 앞의 선택이 다음에 영향을 미치므로, DP로 풀면 O(N)에 풀 수 있다. 이전까지 선택지 3가지에 대한 최선의 선택이 담겨있으며, 이번에는 그 중에서 고를 수 있는 것 중 제일 값이 덜 나가는것을 고르면 된다. 나의 풀이 다른 답안 배울 점 백준은 입력을 처리해서그런지 입력과 동시에 문제를 푼다.... 백준온라인저지백준온라인저지 [코딩테스트 C++] 이친수 이친수 문제 접근 배열을 개수만큼 만들긴했지만, 변수 두개만 있으면 풀 수 있는 문제다. 이친수를 만드는 규칙을 생각하면 쉽게 생각할 수 있다. 0으로 끝나는 경우들은 0을 붙일수도, 1을 붙일수도 있으므로 0, 1로 만들어지는 개수에 합한다. 1로 끝나는 경우들은 0을 붙여야하므로 0으로 만들어지는 개수에 합한다. 나의 풀이 다른 답안 배울 점 내가 푼 방법을 한줄로 만들수도 있다.... 백준온라인저지백준온라인저지 [코딩테스트 C++] 보석 도둑 보석 도둑 접근 방식 처음에 단순하게 음~ 보석비싼것부터 큰가방에 넣을까 하고 풀었다가 틀렸다. 예전에 공부했던 Deadline Scheduling알고리즘이 슥 떠오르면서 문제를 풀 수 있었다. Deadline Scheduling은 점수가 가장 큰 것을 deadline에 맞춰 배치하는것이다. 그러므로 이익(가격)이 큰것을 먼저 배치하되, 가장 딱맞는 위치에(내 무게랑 같거나, 보다 큰 최소의... 백준온라인저지백준온라인저지 [코딩테스트 C++] 게임을 만든 동준이 게임을 만든 동준이 접근 방식 가장 낮추는 횟수를 줄이려면, 맨 끝에서부터 진행해서 그 다음 수(post)보다 커지는 경우, post 보다 1 작은 값으로 낮춰주면 된다. 나의 풀이 다른 풀이 배울 점 이분은 post를 따로 두지않고 배열 안에서만 풀이를 하셨다. 어케 저렇게 한줄로 하시는지... 백준온라인저지백준온라인저지 [코딩테스트 C++] 신입사원 신입사원 문제분석 입력 최대가 100000 => O(Nlog(N))인 알고리즘을 설계하면 됨 정렬에 사용되는 시간복잡도 O(log(N)) 순차탐색 최대 O(N) 나의 풀이 풀이 법 로직이 정확한데 왜 시간초과 나지!!! 하고 한참을 고민했다. Vector에 입력받아 solution에 보내는 과정이 시간이 오래 걸렸나보다.. 결국은 입출력에서의 시간때문에 틀렸던것. 백준으로 앞으로 계속 풀것이... 백준온라인저지백준온라인저지 [코딩테스트 C++] 알파벳 알파벳 접근 방식 전형적인 dfs문제 알파벳이 중복될 수 없다는 점을 평소에 사용하던 visit배열과 접목시키면 된다. 26개짜리 배열을 만들어놓고 해당 알파벳을 지난 경우 true로 표시한다. 종료 후에는 다시 false로 바꾼다. 왜냐하면 다른 로직에서 해당 알파벳이 있을 수 있기에 원래대로 돌려놓는다. 입력이 string으로 주어진것도 모른채로 char로 입력을 받고있었다 ㅋㅋ.. 정신... 백준온라인저지백준온라인저지 [코딩테스트C++] 1로 만들기 1로 만들기 나의 풀이 풀이 법 DP로 풀기위해서는 배열안에 무엇이 들어가야하는지 생각하는것 문제에 답이있다. 답을 구하는 것을 넣으면 된다. 즉 연산을 한 횟수를 넣는다. 입력한 숫자에서 시작되므로 0으로 시작하고 모두 INF로 초기화한다. INF로 초기화한 이유는 비교연산을 하기 위해서이다. 더 작은것을 선택하려면 INF가 필요하다. 해당 숫자에서 3또는 2로 나눠지면 나눠진 숫자의 배열... 백준온라인저지백준온라인저지 [코딩테스트 C++] 알고스팟 알고스팟 접근 방식 그래프에 우선순위큐가 접목된것은 처음 풀어본다. 다른문제같은 경우는 아예 1인곳은 못 가곤 했는데, 이 문제에서는 벽을 부수고 갈 수 있다. 벽을 부수는 것을 최소화하라했으니, queue에 넣어 bfs로 풀되, 벽을 적게 부순 경우를 먼저 다음으로 수행한다. 이게 가능한 이유는 가장 적은 벽을 부순 경우의 다음 경우가 반드시 다른 경우보다 작을 것이라는것이 확실하기 때문.... 백준온라인저지백준온라인저지
[코딩테스트 C++] RGB거리 RGB거리 문제 분석 최대 입력이 1000이므로 O(N^2) 정도의 알고리즘이면 충분하다. 앞의 선택이 다음에 영향을 미치므로, DP로 풀면 O(N)에 풀 수 있다. 이전까지 선택지 3가지에 대한 최선의 선택이 담겨있으며, 이번에는 그 중에서 고를 수 있는 것 중 제일 값이 덜 나가는것을 고르면 된다. 나의 풀이 다른 답안 배울 점 백준은 입력을 처리해서그런지 입력과 동시에 문제를 푼다.... 백준온라인저지백준온라인저지 [코딩테스트 C++] 이친수 이친수 문제 접근 배열을 개수만큼 만들긴했지만, 변수 두개만 있으면 풀 수 있는 문제다. 이친수를 만드는 규칙을 생각하면 쉽게 생각할 수 있다. 0으로 끝나는 경우들은 0을 붙일수도, 1을 붙일수도 있으므로 0, 1로 만들어지는 개수에 합한다. 1로 끝나는 경우들은 0을 붙여야하므로 0으로 만들어지는 개수에 합한다. 나의 풀이 다른 답안 배울 점 내가 푼 방법을 한줄로 만들수도 있다.... 백준온라인저지백준온라인저지 [코딩테스트 C++] 보석 도둑 보석 도둑 접근 방식 처음에 단순하게 음~ 보석비싼것부터 큰가방에 넣을까 하고 풀었다가 틀렸다. 예전에 공부했던 Deadline Scheduling알고리즘이 슥 떠오르면서 문제를 풀 수 있었다. Deadline Scheduling은 점수가 가장 큰 것을 deadline에 맞춰 배치하는것이다. 그러므로 이익(가격)이 큰것을 먼저 배치하되, 가장 딱맞는 위치에(내 무게랑 같거나, 보다 큰 최소의... 백준온라인저지백준온라인저지 [코딩테스트 C++] 게임을 만든 동준이 게임을 만든 동준이 접근 방식 가장 낮추는 횟수를 줄이려면, 맨 끝에서부터 진행해서 그 다음 수(post)보다 커지는 경우, post 보다 1 작은 값으로 낮춰주면 된다. 나의 풀이 다른 풀이 배울 점 이분은 post를 따로 두지않고 배열 안에서만 풀이를 하셨다. 어케 저렇게 한줄로 하시는지... 백준온라인저지백준온라인저지 [코딩테스트 C++] 신입사원 신입사원 문제분석 입력 최대가 100000 => O(Nlog(N))인 알고리즘을 설계하면 됨 정렬에 사용되는 시간복잡도 O(log(N)) 순차탐색 최대 O(N) 나의 풀이 풀이 법 로직이 정확한데 왜 시간초과 나지!!! 하고 한참을 고민했다. Vector에 입력받아 solution에 보내는 과정이 시간이 오래 걸렸나보다.. 결국은 입출력에서의 시간때문에 틀렸던것. 백준으로 앞으로 계속 풀것이... 백준온라인저지백준온라인저지 [코딩테스트 C++] 알파벳 알파벳 접근 방식 전형적인 dfs문제 알파벳이 중복될 수 없다는 점을 평소에 사용하던 visit배열과 접목시키면 된다. 26개짜리 배열을 만들어놓고 해당 알파벳을 지난 경우 true로 표시한다. 종료 후에는 다시 false로 바꾼다. 왜냐하면 다른 로직에서 해당 알파벳이 있을 수 있기에 원래대로 돌려놓는다. 입력이 string으로 주어진것도 모른채로 char로 입력을 받고있었다 ㅋㅋ.. 정신... 백준온라인저지백준온라인저지 [코딩테스트C++] 1로 만들기 1로 만들기 나의 풀이 풀이 법 DP로 풀기위해서는 배열안에 무엇이 들어가야하는지 생각하는것 문제에 답이있다. 답을 구하는 것을 넣으면 된다. 즉 연산을 한 횟수를 넣는다. 입력한 숫자에서 시작되므로 0으로 시작하고 모두 INF로 초기화한다. INF로 초기화한 이유는 비교연산을 하기 위해서이다. 더 작은것을 선택하려면 INF가 필요하다. 해당 숫자에서 3또는 2로 나눠지면 나눠진 숫자의 배열... 백준온라인저지백준온라인저지 [코딩테스트 C++] 알고스팟 알고스팟 접근 방식 그래프에 우선순위큐가 접목된것은 처음 풀어본다. 다른문제같은 경우는 아예 1인곳은 못 가곤 했는데, 이 문제에서는 벽을 부수고 갈 수 있다. 벽을 부수는 것을 최소화하라했으니, queue에 넣어 bfs로 풀되, 벽을 적게 부순 경우를 먼저 다음으로 수행한다. 이게 가능한 이유는 가장 적은 벽을 부순 경우의 다음 경우가 반드시 다른 경우보다 작을 것이라는것이 확실하기 때문.... 백준온라인저지백준온라인저지