https://www.acmicpc.net/problem/2839상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5
https://www.acmicpc.net/problem/11399인하은행에는 ATM이 1대밖에 없다. 지금 이 ATM앞에 N명의 사람들이 줄을 서있다. 사람은 1번부터 N번까지 번호가 매겨져 있으며, i번 사람이 돈을 인출하는데 걸리는 시간은 Pi분이다.사람
https://www.acmicpc.net/problem/2839준규가 가지고 있는 동전은 총 N종류이고, 각각의 동전을 매우 많이 가지고 있다.동전을 적절히 사용해서 그 가치의 합을 K로 만들려고 한다. 이때 필요한 동전 개수의 최솟값을 구하는 프로그램을 작
https://www.acmicpc.net/problem/11399다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고
https://www.acmicpc.net/problem/2839준규가 가지고 있는 동전은 총 N종류이고, 각각의 동전을 매우 많이 가지고 있다.동전을 적절히 사용해서 그 가치의 합을 K로 만들려고 한다. 이때 필요한 동전 개수의 최솟값을 구하는 프로그램을 작
https://www.acmicpc.net/problem/10845시간 초과가 떠서 input 받을 때 input() 대신 sys.stdin.readline() 으로 바꾸니 해결되었다!
https://www.acmicpc.net/problem/1260
https://www.acmicpc.net/problem/1260 🥚문제 🥚입력/출력 🍳코드 🧂아이디어 bfs dfs 아무거나 풀어도 될 것 같아서 bfs로 풀었다.
https://www.acmicpc.net/problem/2667
https://www.acmicpc.net/problem/1012시간초과 떴다가, append 뒤 바로 visit 표시 해줬더니 성공한 것 추가하자. (결국 첫 제출에서는 bfs 구현할 때 빈틈을 보였다는 것)
https://www.acmicpc.net/problem/1181문자열 다루는 문제였고, 시간 제한이 2초인 걸로 보아 꽤나 시간이 소요될 거라고 생각했기 때문에 sys.stdin.readline()을 사용했다.sys.stdin.readline()을 사용할 때
https://www.acmicpc.net/problem/10989수의 개수인 n의 크기가 10,000,000까지 주어질 수 있어서 긴장했는데, 10,000,000개의 요소를 저장할 수 있는 자료구조는 필요 없었다. 중요했던 것은 주어지는 수가 10,000보다
https://www.acmicpc.net/problem/10814첫 제출에 실패된 것은 출력할 때, 나이가 오름차순이 되도록 정렬하지 않았기 때문이었다! 🙄 실수!딕셔너리를 적극 활용해 본 문제이다😊🔼 age와 name이 입력될 때마다, 딕셔너리인 me
https://www.acmicpc.net/problem/1292입력 첫째 줄에 구간의 시작과 끝을 나타내는 정수 A, B(1 ≤ A ≤ B ≤ 1,000)가 주어진다. 즉, 수열에서 A번째 숫자부터 B번째 숫자까지 합을 구하면 된다.즉, 간단하게 1000번째
https://www.acmicpc.net/problem/2108딕셔너리를 사용했다.
https://www.acmicpc.net/problem/11650첫 시도에는 딕셔너리를 이용해 정렬했으나, 시간초과가 떴다.🔼 첫 시도에 제출한 코드. 파이썬의 dictionary 자료형을 사용하고 있다.두 번째 시도에서는 아래 참고에서도 알 수 있듯이,
https://www.acmicpc.net/problem/2960간단한 구현 문제
https://www.acmicpc.net/problem/2805보는 바와 같이 엄청난 제출 끝에 겨우 '맞았습니다!!'를 받아낼 수 있었다.처음에는 이분 탐색은 list 안에서 해야 한다는 고정관념이 있어서 나무 길이들을 리스트로 받은 뒤 그것을 정렬하고 안
https://www.acmicpc.net/problem/1463📌 핵심은 if문 두 개로 3의 배수일 경우, 2의 배수일 경우 모두 검사하고, 1을 빼는 경우의 연산 횟수도 검사해서 그 중 최소 연산 횟수를 table에 저장하는 것이다.📌 또한, '1로
https://www.acmicpc.net/problem/11727이코테 바닥 공사 문제와 같은 문제처음 풀어보는 문제 유형이었는데, 나에게는 어려워서 각종 블로그를 참고했다! 생각보다 간단하게 풀 수 있었다. DP의 힘을 다시 느낄 수 있었던 문제포스트들을
https://www.acmicpc.net/problem/17254처음에 '제출한 코드' 로 제출 했다가 이건 효율적이지 못한 것 같아서 구글링을 통해 다른 방법을 알아냈다.key=lambda로 정렬을 해 주는 것이었다.key=lambda의 용법을 다시 정리하
https://www.acmicpc.net/problem/1389'Floyd-Warshall' 알고리즘BFS로 모든 경우에 대해 돌려줘도 답이 나온다고 한다.
https://www.acmicpc.net/problem/9095DP 중 쉬운 문제에 속하는 듯이코테에서 벽에 막혀도 해설 보면서 생각해보고자 한 노력이 의미가 있었던 것 같기도...🙄
https://www.acmicpc.net/problem/1003
https://www.acmicpc.net/problem/11726틀렸습니다: 나머지 연산 안 함런타임 에러(index Error)아래가 원래 내가 작성한 코드인데, n=1일 때 dp 리스트의 크기는 2로 설정되어 있는데 (즉 index가 0, 1)그 다음 줄
https://www.acmicpc.net/problem/10844
https://www.acmicpc.net/problem/2579어려웠다... 나름 dp 감을 잡았다고 생각했는데 이번껀 쉽게 떠오르지 않아 다른 분들 블로그를 참고했다.게다가 테스트케이스가 교묘했던게, 틀린 방법으로 풀어도 항상 75가 나오더라!🙄스스로 다
https://www.acmicpc.net/problem/7562이것도 부끄럽지만 해설을 참고했다.Knight의 이동 규칙에 따라 BFS를 통해 이동한다. (x_movs, y_movs)visited에 기록해 놓은 직전 기록에 + 1 한 수를 이동할 칸에 기록해
https://www.acmicpc.net/problem/2178어제 나이트의 이동에서 영감을 받아서 슥삭 풀어낼 수 있었다.2차원 리스트인 visited를 만들어, BFS를 수행하며 좌표 별로 그 위치까지 오는 데 밟은 칸의 총 개수를 저장해 주었다.
https://www.acmicpc.net/problem/14916쉽게 풀 수 있었던 문제
https://www.acmicpc.net/problem/1753heapq로 구현한 Priority queue를 사용해서 풀 수 있었던 dijkstra 문제.초반 두 시도에서 시간초과가 났던 이유:우선순위 큐에 (가중치, 노드) 순서로 넣어야 가중치를 기반으로
https://www.acmicpc.net/problem/1916heapq로 구현한 Priority queue를 사용해서 풀 수 있었던 dijkstra 문제.거의 기본 문제나 마찬가지
https://www.acmicpc.net/problem/17219딕셔너리 자료형 이용
https://www.acmicpc.net/problem/1927최소 힙 써보기 문제
https://www.acmicpc.net/problem/11279최대 힙 써보기 문제최소 힙을 그대로 활용하되, (-n, n)의 형태로 삽입하면 -n의 값이 작은 것부터 pop한다. 즉, n의 값이 큰 것부터 pop되므로 최대 힙의 형태를 가질 수 있다.
https://www.acmicpc.net/problem/7576새학기 시작과 함께 정보처리기사를 준비하느라 한 한 달 동안 손을 못 댔더니 확실히 감이 좀 떨어진 것 같다... 코드가 쓸데 없이 긴 느낌도 들고모든 토마토가 익을 수 있는 최소 일 수를 계산하
https://www.acmicpc.net/problem/2292
https://www.acmicpc.net/problem/1874진짜 무슨 말인지 이해가 안돼서 계속 읽었던 문제다른 사람 블로그 보고 이해했다... 좀 명시좀 해주지 ㅠㅠ풀이 자체는 그렇게 어렵지 않았다! 종료 조건만 잘 잡으면 될듯!
https://www.acmicpc.net/problem/10866파이썬 deque 복습과함수 인자에 \*args를 썼다는 것에 의미가 있음!
https://www.acmicpc.net/problem/11866직전 포스트에서 정리했던 deque를 이용하니 매우 쉽게 풀림자료구조 복습의 중요성!
https://www.acmicpc.net/problem/1966이것도 deque로 풀렸다!문제 번호가 끝 두자리가 ...66으로 끝나면 deque로 풀 수 있는 문제인건가
https://www.acmicpc.net/problem/7662🔽 재풀이 해서 풀렸던 풀이엄청난 실패 끝에 풀렸던 풀이실패 이유 1: 시간 복잡도가 높았던 풀이 방법(e.g., 잘못된 자료구조 사용, 리스트를 순회해서 어떤 값을 찾는 동작, ...)실패 이
https://www.acmicpc.net/problem/5430어떻게 하면 좀 더 간단하게 풀어낼 수 있을지를 중점적으로 생각했던 문제. "모든 명령어를 하나하나 실행하지 않아도 되지 않을까?"초반에 실패를 했었는데 반례를 찾아내서 풀 수 있었다.출력 형식이
https://www.acmicpc.net/problem/11723입력값이 3,000,000까지 주어지기에 효율적으로 코드를 작성하는 것이 중요했던 문제과거 제출에서는 정직하게 하나하나 명령어를 수행해서 시간초과가 떴는데 이번에는 효율적으로 조건문을 구성해서
https://www.acmicpc.net/problem/11724예전에 한창 BFS DFS 풀고 있었을 때 풀었다가 실패했었나보다오늘은 2트만에 성공했다!생각지 못한 케이스가 있었는데 (특이하다거나 기발한 케이스는 아니었고 내가 꼼꼼하지 못해서 넘어간 케이스
https://www.acmicpc.net/problem/1074처음에는 재귀를 이용했다그러나 재귀를 이용하면 최대 2^15 \* 2^15까지의 배열을 만들어야했으므로 메모리 초과였고, 이는 시간초과와도 같은 의미.굳이 배열을 쓰지 않아도 구하고자 하는 좌표가
https://www.acmicpc.net/problem/1676
https://www.acmicpc.net/problem/1931
https://www.acmicpc.net/problem/10026케이스를 나누어 BFS/DFS를 하는 간단한 문제
https://www.acmicpc.net/problem/1780
https://www.acmicpc.net/problem/18870
https://www.acmicpc.net/problem/2630단순한 재귀문제였음!
https://www.acmicpc.net/problem/2869예전부터 몇 번 시도했다가 막힌 문제였는데 드디어 풀어냈다!딱 보고 반복문으로 풀어야겠다고 생각하기 쉬운데, 주어진 시간이 짧아서 절대 반복문으로는 통과 못한다마지막에 V(V-A) 값을 가지고 조
https://www.acmicpc.net/problem/1018브루트포스
https://www.acmicpc.net/problem/7568
https://www.acmicpc.net/problem/11651key를 주고 정렬하면 해결할 수 있었던 간단한 문제!
https://www.acmicpc.net/problem/10773
https://www.acmicpc.net/problem/4949
https://www.acmicpc.net/problem/1991
https://www.acmicpc.net/problem/1929에라토스테네스의 체를 이용하여 빠르게 구하는 것이 핵심소수 구하기 테크닉들 복습하기 (에라토스테네스의 채, 왜 제곱근까지만 구하면 되는지...)어떤 자료구조를 사용하는지도 중요
https://www.acmicpc.net/problem/14501x일에 잡힌 상담을 했을 때, 그 보상인 Px를 지급받는 날은 x + Tx일이라고 본다.dpi = 근무한지 i일째일 때, 지급받을 수 있는 최대 수익j + Tj <= i 이면 j일째에 잡혀
https://www.acmicpc.net/problem/2156
https://www.acmicpc.net/problem/1904
https://www.acmicpc.net/problem/9465
https://www.acmicpc.net/problem/11057(예시)d4 = 수의 길이가 3일 때, 마지막 숫자가 4인 오르막수의 개수3번째 숫자가 4가 되려면, 2번째 숫자가 0, 1, 2, 3, 4인 수들 뒤에 붙어야 하므로3번째 숫자가 4인 오르막수
https://www.acmicpc.net/problem/2293k원이 되는 경우의 수 -> i원이 되는 경우의 수 (1 <= i <= k)로 나누어 접근i원이 되는 경우의 수를 구할 때, j번째 (1 <= j <= n)동전까지 사용했을
https://www.acmicpc.net/problem/14502지도를 탐색하며 빈칸을 만나면 벽을 세운다.나머지 2개의 벽도 세운다.벽이 3개가 되면, BFS를 사용하여 바이러스를 퍼뜨리고, 안전 영역의 넓이를 구한다.안전 영역의 최대값을 출력한다.3개의
https://www.acmicpc.net/problem/12865🔼 else부분 오타 수정! dpi = max( dpi-1\[wt-wi] + vi, dpi-1 )dpi = i번째 물건까지 가방에 넣을 수 있는 경우, 가방 무게가 wt라면 이때의 가치합의 최
https://www.acmicpc.net/problem/11403i번 노드 -> k번 노드 -> j번 노드로 거쳐가는 경로를 확인위 문제에서, 경로가 존재하는 경우는 (i, j)가 직접 연결되어 있는 경우와, k를 거쳐서 연결되는 경우 (i, k) -> (k
https://www.acmicpc.net/problem/11054예전에 풀었던 가장 긴 증가하는 부분 수열 (코드 보기) 에서 사용한 알고리즘을 활용n개의 숫자 -> 각각 Sk일 때의 가장 긴 바이토닉 부분 수열을 구한다Sk를 기준으로좌측(증가부)는 LIS
https://www.acmicpc.net/problem/7569상자의 수, 가로칸, 세로칸 -> 3차원 리스트로 나타내기boxlevelcol1(익은 토마토)가 있는 모든 위치를 deque에 넣고, BFS로 탐색한다 ⭐⭐⭐토마토가 익는 데 며칠이 걸리는지를 계
https://www.acmicpc.net/problem/1987dfs, 백트래킹방문 처리를 해주고 dfs 수행한 뒤, 다시 방문 처리를 해제해주기 ⭐⭐⭐⭐⭐Python3로는 '시간초과', Pypy3로 통과방문한 알파벳들을 기록하는 방법처음에는 리스트에 방문한
https://www.acmicpc.net/problem/1699top-down으로 풀면 n이 커졌을 때 recursion error를 뱉어내서 bottom-up으로 풀이!dpx : 자연수 x를 제곱수의 합으로 표현할 때 그 항의 최소 개수를 저장x가 이미 제
https://www.acmicpc.net/problem/2941문자열을 변경하는 replace 함수를 사용하여 크로아티아 알파벳을 "\*"로 변환했다.이때, 3글자로 구성된 "dz="를 우선적으로 replace한다. 그렇지 않으면 "dz="에서 "z="가 먼
https://www.acmicpc.net/problem/2206벽을 부순 것을 어떻게 나타내야 할지가 어려웠던 문제 ⭐⭐⭐⭐⭐"벽을 아직 부수지 않은 상태에서 벽을 만나면, 벽을 파괴했다는 표시를 해주고 다시 그 지점에서 bfs 진행" 이라는 첫 번째 아이디
https://www.acmicpc.net/problem/11055증가 부분 수열을 활용하는 또 다른 문제이번에는 증가 부분 수열 중 합이 가장 큰 것을 찾는 게 포인트dpx에 x번 인덱스까지의 가장 큰 부분 수열의 합을 저장초기화는 dp = a:로 하는데,
https://www.acmicpc.net/problem/156861번 코드 (시간: 880ms)2번 코드 (시간: 536ms)치킨집 m개의 조합을 각각 테스트하면서 전체 도시의 치킨거리가 최소인 값을 구한다Python의 itertools를 사용하여 유지할 m
https://www.acmicpc.net/problem/117251\. BFS를 이용한 코드DFS를 이용한 코드BFS, DFS를 이용하여 풀이하는 기본적인 문제DFS 이용 시 주의사항recursionlimit을 조정해줘야함. BOJ 채점 서버에서는 recur
https://www.acmicpc.net/problem/11722최장 증가 부분 수열의 알고리즘을 이용하여 푼다가장 긴 감소하는 부분 수열은 주어진 수열 a를 뒤집은 것의 최장 증가 부분 수열을 구한 것과 같다.
https://www.acmicpc.net/problem/11051이항계수를 삼각형 모양의 표에 늘어놓은 것을 파스칼의 삼각형이라고 한다.이를 활용하면 dp로 문제를 쉽게 풀 수 있다.파스칼의 삼각형을 2차원 리스트로 나타내면dp i 는 C(i, j)를 나타낸
https://www.acmicpc.net/problem/1063킹의 움직임을 나타내는 'R', 'L', 'B' 등의 입력은 move_cmd라는 딕셔너리를 사용해서 쉽게 좌표상의 움직임으로 변환할 수 있게 했다.def location(string)문제에서 말의
https://www.acmicpc.net/problem/3190board상, 하, 좌, 우 끝 벽들은 -1로 표시한다.사과는 1로 표시한다.뱀python의 deque를 사용하여 선입선출 큐로 유지한다.deque 안에 들어가있는 좌표들은 뱀의 몸통이 차지하고
https://www.acmicpc.net/problem/1520딱 보고 DFS로 풀이하면 된다는 생각을 떠올리기는 쉽지만, 그냥 DFS로만 풀면 시간초과 혹은 recursion error가 뜬다왜?재귀가 이루어질 때마다 4번의 탐색이 발생한다. 최악의 경우
https://www.acmicpc.net/problem/2644입력을 가중치가 없는 양방향 그래프로 볼 수 있다. 이를 인접 리스트로 표현한다.촌수는 노드사이의 최소 거리 = 간선의 최소 개수이다.BFS를 통해서 풀이했다.def bfs(node)bfs로 노드
https://www.acmicpc.net/problem/1009단순히 a\*\*b%10을 하면 시간초과 (b <= 1,000,000)1에서 10까지의 자연수를 제곱했을 때 일의자리 숫자의 규칙성을 생각해보면 쉽게 풀 수 있다.1을 제곱했을 때, 일의자리
https://www.acmicpc.net/problem/11048dpr = (r, c)로 이동할 때 가져올 수 있는 사탕 개수의 최대 값코드 1입력이 아래와 같을 때각 공간에 있는 사탕의 개수를 저장하는 candy 및 dp를 (n)행 \* (m)행짜리 2차원
https://www.acmicpc.net/problem/2294dpx = x원을 만들기 위해 사용한 동전의 최소 개수dp\[0] = 0으로, 입력에서 주어지는 동전들은 dp\[coin] = 1로 초기화하고, 나머지는 -1로 초기화한다.i - coin >= 0
https://www.acmicpc.net/problem/1707정점을 두 그룹으로 나눌 수 있다고 할 때, 간선으로 연결된 두 정점이 서로 다른 그룹인 그래프쉽게 말하면, 정점을 빨강과 파랑으로 칠할 수 있다고 할 때 간선으로 연결된 두 정점은 절대 같은 색
https://www.acmicpc.net/problem/2225dpk -> 0~n까지의 정수 k개를 더해서 합이 n이 되는 경우의 수dp\[k]\[n] = dp\[k-1]\[n] + dp\[k]\[n-1]딱 보자마자 2차원 dp로 풀어야지라고 생각했던 문제d
https://www.acmicpc.net/problem/2565증가하는 부분 수열 만들기를 활용해서 풀었다.Ai = 전봇대 A의 위치 i에 연결된 전봇대 B의 위치 정보Ai == 0이면 연결되지 않은 것을 의미전깃줄이 교차하지 않으려면 Ai에 연결된 B의 위
https://www.acmicpc.net/problem/16234 🥚문제 🥚입력/출력 ![](https://images.velog.io/images/eastgloss0330/post/65
https://www.acmicpc.net/problem/17626PyPy3로 통과\[백준 1699] 제곱수의 합 ❗ 문제와 같은 방식으로 풀이했다dpx : 자연수 x를 제곱수의 합으로 표현할 때 그 항의 최소 개수를 저장x가 이미 제곱수일 때 (x = y\*
https://www.acmicpc.net/problem/3055물('\*')은 여러 곳에 위치할 수 있다. 따라서 물이 어떻게 차오르는지 알기 위해서는 모든 물의 위치에서 BFS를 해야 한다.물이 있는 위치(r1, c1)에서 BFS를 할 때, tmp_visi
https://www.acmicpc.net/problem/1309 🥚문제 🥚입력/출력 🍳코드 🧂아이디어 탐색 (BFS) waterbfs(row, col, watervisited): 물이 차는 시간을 기록 물('*')은 여러 곳에 위치할 수 있다. 따라서 물
https://www.acmicpc.net/problem/11559한 턴을 4개 이상 연결된 뿌요들이 터지고, 남은 뿌요들이 아래로 떨어지는 것까지로 보기로 한다.4개 이상 연결된 뿌요들을 터뜨리기같은 색 뿌요가 상하좌우로 4개 이상 연결되어 있는지 bfs로
https://www.acmicpc.net/problem/13460매우 도움을 받았던 글들 : https://wlstyql.tistory.com/72 , https://rebas.kr/724str에 넣은 문자열의 board 상에서의 위치를 리
https://www.acmicpc.net/problem/17144PyPy3로 통과모든 미세먼지가 있는 위치(r, c)와 그 위치에서 확산시킬 미세먼지의 양(A\[r]\[c]//5)을 리스트 dusts에 저장해둔다.spread_dust 함수를 이용해 dusts
https://www.acmicpc.net/problem/1005순서가 정해져 있는 작업을 차례대로 수행해야 할 때 사용하는 알고리즘방향 그래프의 노드들을 방향성에 거스르지 않게 나열하는 것진입 차수 (indegree): 어떤 노드로 들어오는 간선의 개수위상
https://www.acmicpc.net/problem/2573PyPy3로 통과melt(r, c, arr) 함수는 인자로 받은 arr 상태에서 (r, c)에 위치한 빙산을 녹이고, 빙산이 녹은 뒤의 높이를 리턴한다.현재 arr에 위치한 빙산들의 좌표 (r,
https://www.acmicpc.net/problem/14499주사위의 어떤 면에 어떤 숫자가 써있는지를 어떻게 나타낼지 고민하다가 문제에서 주어진 전개도를 이용하기로 했다.주사위의 전개도를 나타내는 2차원 리스트 dice를 이용하여 주사위를 굴린 뒤의 정
https://www.acmicpc.net/problem/1967참고: https://kyun2da.github.io/2021/05/04/tree's_diameter/트리의 지름: 트리에 존재하는 모든 경로들 중에서 가장 긴 것의 길이임의의 노드에서
https://www.acmicpc.net/problem/2636바깥 공기와, 치즈의 구멍을 구분해야 했다.주어지는 입력에서, 판의 가장자리는 항상 치즈가 없는 0이다.(0, 0) 위치에서 bfs를 하며 0인 위치들을 -1로 바꾸어준다면 바깥 공기는 -1로,
https://www.acmicpc.net/problem/1890 🥚문제 🥚입력/출력 🍳코드 [[백준 1520]
https://www.acmicpc.net/problem/13549그래프 이론자료 구조그래프 탐색너비 우선 탐색다익스트라0-1 너비 우선 탐색참고: https://sihyungyou.github.io/boj-13549/걷는 경우는 1초, 순간이동의 경
https://www.acmicpc.net/problem/12100구현브루트포스 알고리즘시뮬레이션백트래킹이 게임에서 한 번의 이동은 보드 위에 있는 전체 블록을 상하좌우 네 방향 중 하나로 이동시키는 것이다.블록을 상, 하, 좌, 우로 옮길 때, 방향에 따라
https://www.acmicpc.net/problem/12100구현브루트포스 알고리즘시뮬레이션세로크기와 가로크기를 각각 N, M에, 사무실 각 칸의 정보를 arr에 저장한다.arr에서 cctv가 있는 곳의 좌표를 q에 저장한다.arr과 q를 인자로 갖는 재
🥚문제링크 https://www.acmicpc.net/problem/9019 > - 그래프 이론 그래프 탐색 너비 우선 탐색 🍳코드 PyPy3로 통과 🧂아이디어 탐색, BFS 각 테스트케이스별로 A값이 i일 때, DSLR 연산을 시도해보았는지 체크하는 방문
https://www.acmicpc.net/problem/9184다이나믹 프로그래밍재귀위와 같은 재귀함수 w(a, b, c)가 있을 때, 다이나믹 프로그래밍을 이용하여 결과값을 더 빨리 구할 수 있게 프로그래밍한다.각각 0에서 20까지의 인덱스를 갖는 3차원
https://www.acmicpc.net/problem/14890구현길이란 한 행 또는 한 열 전부를 나타내며, 한쪽 끝에서 다른쪽 끝까지 지나가는 것이다. 따라서 arr\[0]\[0], arr\[0]\[1], ... ,arr\[0]\[N-1]에서 각각 아래
https://www.acmicpc.net/problem/14890누적 합prefix_sumi에 1번째 숫자부터 i번째 숫자까지의 합을 저장한다.i번째 수부터 j번째 수까지의 합을 구하려면 prefix_sum\[j] -prefix_sum\[i-1]을 한다.|
ㅇㅇㅇㅇ
🥚문제링크 https://www.acmicpc.net/problem/5014 > - 그래프 이론 그래프 탐색 너비 우선 탐색 🍳코드 🧂아이디어 탐색, BFS 을 큐에 삽입한다. 로 방문표시를 한다. 큐의 첫 원소를 pop하여 층수 , 버튼을 누른 횟수 을 얻
https://www.acmicpc.net/problem/1167그래프 이론그래프 탐색트리깊이 우선 탐색유사한 문제 풀이: \[백준 1967] 트리의 지름 ❗백준 1967번 트리의 지름 문제와 같은 아이디어로 풀이했다.임의의 노드에서 가장 먼 노드 x를 찾고,
https://www.acmicpc.net/problem/9252다이나믹 프로그래밍LCS 알고리즘
https://www.acmicpc.net/problem/15685구현시뮬레이션⬛ 2차원 리스트에 드래곤커브를 어떻게 표현할 것인가?문제 설명의 '드래곤커브의 끝점에 다음 세대 드래곤 커브 이어 붙히기', '1 x 1 정사각형의 네 꼭짓점이 드래곤 커브의 일부
https://www.acmicpc.net/problem/1937다이나믹 프로그래밍그래프 이론그래프 탐색깊이 우선 탐색유사한 문제 풀이: \[백준 1890] 점프 ❕ | \[백준 1520] 내리막 길 ❗DFS로만 풀면 시간초과DP + DFS로 풀이해야 한다
https://www.acmicpc.net/problem/16953그래프 이론그리디 알고리즘그래프 탐색너비 우선 탐색A에서 시작하는 BFS를 진행한다.큐에는 (num(숫자), cnt(연산횟수)) 를 담는다.num이 B가 되면 cnt + 1을 리턴한다.num \
https://www.acmicpc.net/problem/11066다이나믹 프로그래밍dp\[i]\[j] = 파일 i ~ j까지를 합치는 데 드는 최소 비용start파일부터 end파일까지를 합칠 때 최소 비용을 구하는 식은 아래와 같다.dpstart = min(
https://www.acmicpc.net/problem/11066다이나믹 프로그래밍슬라이딩 윈도우아이디어를 떠올리는 것은 어렵지 않았으나 메모리 초과에 걸려 몇 번 다시 풀어본 문제최대값을 구하는 max_dp, 최소값을 구하는 min_dp를 각각 3개의 원소
https://www.acmicpc.net/problem/2589그래프 이론브루트포스 알고리즘그래프 탐색너비 우선 탐색PyPy3로 통과, Python3는 시간초과세로의 크기 n, 가로의 크기 m, 보물지도 arr를 입력받는다.2차원 리스트 dist를 만든다.
https://www.acmicpc.net/problem/1120구현문자열브루트포스 알고리즘간단하게 for문을 이용해서 풀 수 있었던 문제A와 B의 차이를 최소로 하는 것이 목표이므로, A의 앞뒤에 알파벳을 추가하는 것은 결국 B와 최대한 일치할 수 있게 알파
https://www.acmicpc.net/problem/3085구현브루트포스 알고리즘인접한 부분을 탐색할 때, 상, 하, 좌, 우를 다 탐색할 필요 없이 아래쪽과 오른쪽만 탐색 하면 시간초과를 해결할 수 있다.(r, c)와 그 우측을 교체한 상태 = (r,
https://www.acmicpc.net/problem/2638구현그래프 이론그래프 탐색너비 우선 탐색시뮬레이션깊이 우선 탐색\[백준 2636]치즈 문제와 유사한 문제이다.차이점이 있다면 \[백준 2636]치즈 문제는 공기와 접촉한 치즈가 녹아 없어지는 반면
https://www.acmicpc.net/problem/9466그래프 이론그래프 탐색깊이 우선 탐색참고: https://claude-u.tistory.com/435보자마자 사이클을 찾아야겠다는 생각이 떠올랐던 문제다만, 방향 그래프에서 어떻게 사이클
https://www.acmicpc.net/problem/10942다이나믹 프로그래밍DP를 이용한 팰린드롬 판별법:i ~ j까지의 수가 팰린드롬인가?i번째 수와 j번째 수가 같고, i+1 ~ j-1번째 수 (사이의 수)가 팰린드롬이면 팰린드롬
🥚문제 > https://www.acmicpc.net/problem/1915 다이나믹 프로그래밍 🥚입력/출력 🍳코드 ![](https://images.velog.io/images/eastgloss0330/post/69de3db3-faaf-4cc6-940f-29
https://www.acmicpc.net/problem/2146그래프 이론그래프 탐색너비 우선 탐색지도의 크기와 데이터를 입력 받는다.서로 다른 섬을 구분짓기 위해 BFS를 통해 각각의 섬에 번호를 매긴다. 코드에서는 mark_island 함수로 이를 구현했
https://www.acmicpc.net/problem/1051구현브루트포스 알고리즘'N과 M은 50보다 작거나 같은 자연수' 라는 조건 -> 브루트포스 가능입력으로 받은 2차원 리스트 arr을 순회하면서 좌표 (r, c)가 좌측 상단 꼭짓점일 때 나머지 세
https://www.acmicpc.net/problem/14002다이나믹 프로그래밍최장 증가 부분 수열의 알고리즘을 이용하여 푼다.(이전에 관련 문제들을 몇 번 풀었는데, 아래 참고에 링크를 걸어 놓겠다.)dpi = 길이가 i인 증가하는 부분 수열에서 마지막
https://www.acmicpc.net/problem/17070다이나믹 프로그래밍그래프 이론다이나믹 프로그래밍 기법으로 푼다. 이때, 파이프의 한 쪽 끝이 (r, c)에 도달했다면, 직전 위치에서 가로로 밀었을 때, 세로로 밀었을 때, 대각선으로 밀었을 때
https://www.acmicpc.net/problem/17135구현그래프 이론브루트포스 알고리즘시뮬레이션각 턴마다 해야할 일궁수를 배치한다모든 궁수가 적 하나를 공격한다공격은 거리가 D이하인 적 중 가장 가까운 적을 하고, 공격할 수 있는 적이 여러명이라면
https://www.acmicpc.net/problem/17135그래프 이론그래프 탐색트리깊이 우선 탐색union find 기법을 이용한다.parents라는 리스트를 만들어 parents\[i] = i의 부모 노드 번호를 저장한다. 초기값은 parents\[
https://www.acmicpc.net/problem/1717자료 구조분리 집합\[백준 1976] 여행 가자 문제를 풀고 비슷한 유형을 풀고 싶어서 찾아서 푼 문제union-find 기법을 이용하여 두 수가 같은 집합에 있다면 YES를, 다른 집합에 있다면
https://www.acmicpc.net/problem/14888브루트포스 알고리즘백트래킹현재까지의 결과 x, 연산자의 개수를 저장하는 리스트 op, 다음 연산의 피연산자가 될 수열의 인덱스 i를 인자로 갖는 함수 solve를 작성했다.op0 = 남은 + 연
https://www.acmicpc.net/problem/5639그래프 이론그래프 탐색트리재귀문제의 입력에서 노드의 개수, 혹은 입력 종료 조건이 주어지지 않았다.EOF입력 시 종료되어야 한다.따라서, while loop 내부 try-except문을 이용하여
https://www.acmicpc.net/problem/11049다이나믹 프로그래밍dpi = 행렬i ~ 행렬j까지를 곱셈했을 때, 곱셈 연산 횟수의 최솟값을 저장행렬 4개가 주어지고 각각의 크기가 5\*3, 3\*2, 2\*6, 6\*4 일 때matrix =
https://www.acmicpc.net/problem/1965다이나믹 프로그래밍최장 증가 부분 수열의 알고리즘을 이용하여 푼다.이전에 관련 문제들을 몇 번 풀었는데, O(NlogN)의 시간복잡도를 가지는 알고리즘을 구현하는 데 좀 실수가 있었던 것 같다.
https://www.acmicpc.net/problem/1244구현시뮬레이션남학생: 입력으로 받은 번호가 num이면, num의 배수 위치에 있는 스위치의 상태 반전boy(num)함수: idx(초기값 num)가 범위 내에 있을 때까지 idx에 num을 더해가며
https://www.acmicpc.net/problem/1022구현step x일 때, 좌측 상단 좌표 (-x, -x), 우측 하단 좌표 (x,x)의 영역을 소용돌이 모양으로 채워간다. (이미 채워진 내부 영역(-x+1, -x+1), (x-1, x-1)은 제외
https://www.acmicpc.net/problem/13913그래프 이론그래프 탐색너비 우선 탐색수빈이가 동생을 찾는 최소 시간과, 이동 경로를 출력해야하는 문제.맨 처음에 제출한 코드는 deque에 (현재위치, 현재위치까지 오는 경로)형식으로 정보를 저
https://www.acmicpc.net/problem/5567그래프 이론그래프 탐색상근이의 친구는 depth 1, 상근이의 친구의 친구는 depth 2. BFS를 하며 depth1, depth2인 친구들의 수를 구한다.
https://www.acmicpc.net/problem/14891구현시뮬레이션각각의 톱니바퀴는 deque자료구조로 표현한다. deque의 rotate함수를 이용하여 톱니바퀴의 회전을 쉽게 구현할 수 있다.rotate(1)은 시계방향, rotate(-1)은 반
https://www.acmicpc.net/problem/1600그래프 이론그래프 탐색너비 우선 탐색일반적인 BFS처럼 이미 방문한 위치를 스킵하고 탐색한다면 오답이 출력된다!어떤 위치까지 도달했을 때, 능력을 몇 번 써서 도착했는지에 따라 구분해서 동작 횟수
https://www.acmicpc.net/problem/16235구현시뮬레이션참고: https://pacific-ocean.tistory.com/376엄청나게 시간초과를 만났던 문제 ⏰업로드중..이전에 작성한 코드는 봄, 여름, 가을, 겨울을 모두
https://www.acmicpc.net/problem/18111구현브루트포스 알고리즘참고: https://peisea0830.tistory.com/3어떻게 구현해야 할지, 시간을 어떻게 줄일 수 있을지 고민을 많이 했던 문제땅을 어떤 높이로 해야할
https://www.acmicpc.net/problem/12851그래프 이론그래프 탐색너비 우선 탐색참고: https://jaimemin.tistory.com/582다른 숨바꼭질 문제와 달리, 가장 빠른 시간과 함께, 가장 빠른 시간으로 찾는 방법이
https://www.acmicpc.net/problem/2011다이나믹 프로그래밍0을 처리하는 과정에서 좀 생각을 해야 했지만, 난도는 그렇게 높지 않았던 문제였다.
https://www.acmicpc.net/problem/15684구현브루트포스 알고리즘백트래킹출처: https://ryu-e.tistory.com/69시간초과 해결 위해 위 출처 글 참고!어떤 정점 (r, c)에서 시작해서 dfs를 통해 가로선을 그
https://www.acmicpc.net/problem/16928그래프 이론그래프 탐색너비 우선 탐색BFS를 이용하여 간단하게 풀 수 있었던 문제보드판은 10\*10 리스트로 만들어주었다. 일반 칸은 board\[r]\[c] = 0으로 표시해주었고 뱀이나 사