https://www.acmicpc.net/problem/17136처음에 색종이도 5가지에 5개씩 밖에 안 되고, 네모칸도 10 X 10이라서 해봐야 100 X 25 정도되겠다 싶어서 그리디로 풀려고 했다. 그래서 첫 칸부터 큰 사이즈부터 비교하면서 되면 넣
https://www.acmicpc.net/problem/4195처음에는 인접리스트나 뭐 그런거 만들어서 DFS나 BFS같은 걸로 돌려야 하나 싶었다. 그런데 마음속에서 생긴 DFS코드를 만들어야하는 거부감이 생겨서 고민하다가 DFS로도 안 될 것 같아서, 시
https://www.acmicpc.net/problem/7662처음에는 heapq 하나 만들어서 최대값 출력이면 리스트 전체에 -를 곱해서 뽑고 다시 -곱해서 원래대로 돌려주고 이렇게 할까 생각했는데 리스트 최대 개수가 거의 백만이라서 시간초과가 날 것 같아
https://www.acmicpc.net/problem/20040강의에서 문제 설명으로 Union-Find를 사용하면 된다고 해서 예전에 만들었던 Union-find 코드를 확인했는데 이걸로 어떻게 사이클을 탐지할지 고민을 했지만 떠오르지 않았다.조금 달라지
https://www.acmicpc.net/problem/181113중 for문 돌리는 것으로 최소 높이에서 최대 높이까지 일일이 다니며 시간을 구하고 최소 시간과 높이를 구하는 방식을 가장 먼저 생각했다. 그렇게 해도 높이 최대 257, 가로, 세로 각 50
https://www.acmicpc.net/problem/1202틀린 문제 다시 풀다가 다시 못 푼 문제이다. 처음에는 문제 잘못 읽어서 가방이 하나인 줄 알았는데 가방이 여러 개였다. 여기서부터 꼬이기 시작했다.이전 코드를 참고해서 풀었다. 가장 작은 가방부
https://www.acmicpc.net/problem/1520틀렸던 문제를 다시 도전했지만 또 틀린 문제다.처음에는 DP인줄 생각 안 하고 BFS로 모든 경로를 다 찾아보려고 했다. 도착지에 갈 때마다 숫자를 세서 답을 구했다. 그리고 시간 초과가 났다.B
https://www.acmicpc.net/problem/1253수열을 주는데 수열의 숫자 중에서 다른 두 숫자의 합이랑 일치하는 숫자가 몇 개인가 세는 문제이다.투 포인터 쪽이 부족한 것 같아서 실버3 투포인터 문제 하나 풀고 도전했다.근데 생각보다 쉽게 풀
https://www.acmicpc.net/problem/20963열 짜리 배열이 있는데 아래 행으로 가면서 합치는데 +-1의 열에 있는 숫자와 합칠 수 있다. 이렇게 합쳐서 최대, 최소값을 구하라는 문제이다. DP라는 것을 알고나서 원래 하던대로 DP 배열을
https://www.acmicpc.net/status?user_id=rkdgur5381&problem_id=1644&from_mine=1숫자 n을 n보다 작은 연속적인 소수의 합으로 나타낼 수 있는 경우의 수를 구하는 문제이다.먼저 n보다 작은 소수를 전부
https://www.acmicpc.net/problem/2179접두사가 가장 비슷한 문자열을 찾는 문제이다.문자열을 index와 함께 저장하고, 정렬한 후에 앞뒤로 문자열을 비교하면서 가장 큰 문자열을 찾는 방식을 사용했다.처음에는 이렇게 했는데 50%에서
https://www.acmicpc.net/problem/11728정렬된 배열 두 개 합치는 문제이다. 예전에 프로젝트할 때 비슷한 상황이 있었는데 그때는 그냥 배열 두 개 연결하고 정렬했었는데, 더 나은 방법이 있는지 확인할 겸 풀어보았다.투 포인터인 만큼
https://www.acmicpc.net/problem/2170최근에 했던 코딩테스트에서 처음 보는 유형의 문제가 나와서 O(n^2) 코드밖에 떠오르지 않았는데 다음에 비슷한 문제가 나오면 어떻게 대응해야할 지 확인하기 위해서 지피티 선생님의 지혜를 빌려 어
https://www.acmicpc.net/problem/2261Sweep 알고리즘 풀다가 여기까지 도달했다. 그런데 1차원 직선 상에 놓인 점 중에 가까운 것은 구할 수 있겠는데 2차원에서는 어떻게 접근해야할 지 감을 잡지 못했다.https://ww
https://www.acmicpc.net/problem/2018
https://www.acmicpc.net/problem/1135상사 id가 있는 리스트가 주어지고, 한 사람당 전화할 때 1분씩 걸린다고 했을 때 뉴스 최종 전파의 최소 시간을 구하는 문제이다.정렬이긴 했는데, 트리로 생각하면 더 빠를 것 같아서 게다가 최소
https://www.acmicpc.net/problem/2531문제를 초밥 먹는 개수를 최대로 하기로 잘못 이해했다.그냥 단순히 쿠폰의 위치를 찾고 쿠폰이 없는 구간 중 k개 이상인 구간을 찾아서 해결했는데 당연하게도 틀렸다.k개만큼 슬라이드 돌면서 set으
https://www.acmicpc.net/problem/1707그래프의 노드에 2가지 색칠하는데 인접한 노드끼리 서로 다르게 색칠할 수 있는지 묻는 문제이다.dfs로 돌면서 색칠하고, 만약 방문했다면 현재 노드와 방문하려고 했던 노드의 색이 같은지 다른지에
https://www.acmicpc.net/problem/17834 사이클이 0개이거나 사이클의 오솔길 개수가 짝수개인 경우에만 영원히 만나지 못하는 상황이 생김. 영원히 만나지 못하려면 사자와 토끼 사이에 오솔길이 홀수개만큼 떨어져있어야함. 사이클 탐지 해서 그
https://www.acmicpc.net/problem/5547육각형 모양으로 배열되는 건물들이 있는데 밖에서 볼 수 있는 부분만 조명을 달려고 하는데 밖에서 볼 수 있는 부분의 길이가 얼마나 되는지 구하는 문제이다.예전에 빙산 문제나 치즈 문제랑 비슷한 결
https://www.acmicpc.net/problem/13334라인스위핑 문제이다. 집과 사무실 좌표로 구성된 선분들 주어지고, 길이가 d인 철도를 설치할 때 가능한 많은 선분을 포함하게 하는 문제이다.기존 스위핑 문제에서는 길이가 가변적이었는데, 이번에는
https://www.acmicpc.net/problem/1744수열에서 임의의 위치에 있는 두 수를 묶을 수 있는데 묶게 되면 두 수는 곱해진다. 묶는 거는 할 수도 있고 안 할 수도 있는데 이렇게 했을 때 수열의 합이 최대가 되게 하는 문제이다.최초에 접근
https://www.acmicpc.net/problem/1002점이 두 개 주어지고, 찾으려고 하는 대상과 두 점 사이의 거리가 주어질 때, 대상이 존재할 수 있는 위치가 몇 가지가 되는 지 찾는 문제이다.처음에는 원 방정식을 활용해서 두 원의 교점을 찾으려
https://www.acmicpc.net/problem/11053 예전에 이해를 못했던 가장 긴 증가하는 부분수열이다. 이 문제는 이미 파이썬으로 풀어봤어서 Java로 풀어보려고 한다. Python next라는 배열을 1로 초기화 시켰다. 해당 요소만 포함하는
https://www.acmicpc.net/problem/121002048 구현하는 문제이다. 최대 5회를 돌렸을 때 최대 값을 출력하는 것이 목표다.방향이 4개이고 5회라서 모든 경우를 고려했을 때 1,024회 밖에 되지 않아서 DFS로 해결하기로 했다.좌우