백준 17829, 222-풀링
백준 1342, 행운의 문자열
백준, 2992 크면서 작은 수
백준 12033, 김인천씨의 식료품가게 (Small)
문제 풀이
백준 풀이
프로그래머스 해시, 베스트 앨범
문제 https://programmers.co.kr/learn/courses/30/lessons/42628 풀이 처음에는 우선순위 큐를 통해서 pair로 구간힙을 만들어서 풀려는 시도를 하였는데. 반개만 들어가 있는 pair에 대한 처리를 불가능하다고 생각해서 그
문제 https://programmers.co.kr/learn/courses/30/lessons/42884 풀이 저번에 풀이를 봤던 디스크 컨트롤러와 비슷한 방식으로 접근하였다. 이 문제를 그리디라고 인식하고 접근하면 쉽게 떠올릴 수 있는 방법인데 그냥 구간의 큰
문제 https://programmers.co.kr/learn/courses/30/lessons/42627 풀이 풀이는 생각보다 간단한데, 평균이 최소가 되려면 해당 시간에 가능한 작업 중에서 가장 짧은 시간이 걸리는 작업을 수행해야 한다. 이유는 수학적인 증명은 안했지만, 가장 빨리 끝나는 것을 해야 다른 작업이 질질 끌리는 것을 막을 수 있기 때문...
문제 https://programmers.co.kr/learn/courses/30/lessons/42895 풀이 이 문제같은 경우는 처음 봤을 때는 어떻게 풀지라고 막막하게 생각했는데 생각보다 쉽게 끝났던 문제였다. 먼저 최대한 간단하게 5555 같은 가장 크게 증가하는 연산은 먼저 처리하고 나머지는 두 수의 사칙연산으로 생각하면 생각보다 구현하기는 ...
실패
https://www.acmicpc.net/problem/2110프로그래머스에서 풀었던 이분탐색 문제(아직 안올림, 입국심사 문제)와 같이 되는지 확인하는데 n, 되는 값을 찾는데 lg 100000000이 들어서 푸는 문제이다. 다만 저번에는 lower bou
https://www.acmicpc.net/problem/17142바로 전에 풀었던 문제와 마찬가지로 완전탐색으로 풀면 되는 문제이다. 거기에다가 bfs 끼얹기 정도? 이번에는 조합에 대한 시간이 10 이하기 때문에 거의 상수로 생각해줘도 되서 연구소 보다 시
https://www.acmicpc.net/problem/14500그냥 무지성으로 모든 회전, 대칭을 고려한 테트리스 블록을 구현하고 모든 부분에 적용시켜서 푸는 방식으로 진행했다. 다만 이렇게 하니까 오류 날 확률도 높고 시간도 오래걸려서 다음에는 회전, 대
https://www.acmicpc.net/problem/1504그냥 간단하게 다익스트라 알고리즘을 각각 적용해서 풀면 되는 문제 였다. 다만 다익스트라 알고리즘 구현에 자신이 없다보니 좀 쫄았는데구현 자체는 막 그렇게 어렵지 않은 것 같다. 다만 알고리즘을
https://www.acmicpc.net/problem/12865나눌 수 없는 배낭 문제의 아주 기초적인 문제이다. 처음에는 이걸 어떻게 구현하나 생각했는데 첫번째 index에는 넣을 수 있는 물건의 종류, 두번째 index에는 무게로 구현하면 임의의 i에
https://www.acmicpc.net/problem/11404그냥 플로드이-워셜 알고리즘을 적용하면 풀리는 문제 였다. 다만 해당 알고리즘을 몰라서 익히고 풀었다. 쉬워서 구현자체는 간단했다. 시간복잡도가 O(N^3) 인 것을 기억하고 사용한 틀을 익히도
https://www.acmicpc.net/problem/11779골3 문제여서 기대했는데 저번에 풀었던 다익스트라랑 별반 차이가 없다. 저번이랑 달라진 점은 최종 경로를 기억하는 것이 문제로 추가 되었다는 점. 근데 그건 cost를 갱신 할때마다 해당 노드만
https://www.acmicpc.net/problem/1043사실 이 문제의 풀이가 직관적으로 떠오르지는 않았고 아 기존에 있던 사람에 의해서 다른 사람이 아는 사람으로 바뀌는구나 ~ 그럼 또 그 사람때문에 전염될 수 있구나~ 그럼 큐로 처리해야겠다 ~ 정
https://www.acmicpc.net/problem/24268간단한 순열 문제였다. 최대 입력이 10개이기 때문에 10!을 하면 약 300만 밖에 나오지 않아서 쉽게 풀 수 있었다. 순열은 c++의 next permutation을 사용하였다.vs에서는 제
처음으로 제대로된 플레를 혼자서 풀어본 느낌이다. 물론 힌트를 보긴 했는데...https://www.acmicpc.net/problem/5719이 문제는 중복되는 최단 경로의 경로를 포함하지 않는 그다음으로 최단인 경로를 찾는 문제이다. 여기서 중요한 것은 거
https://www.acmicpc.net/problem/2786보고 풀었다. 근데도 틀려서 한번 더 봤다... 코드는 진짜 멘탈이 나가서 스파게티코드로 짯기 때문에 보지 않는 것을 추천한다.풀이는 다른 분 벨로그에 있는 풀이를 사용하되 내가 틀린 부분에 대해
https://www.acmicpc.net/problem/1006이것도 보고 풀었다. 며칠간 고민해봤는데, 처음에는 그래프로 크기가 큰 값 혹은 지역 번호가 큰 값에서 아래로 떨어지듯이 단방향 그래프를 그려서 하면 사이클이 없으니 dp를 적용할 수 있지 않을까
https://www.acmicpc.net/problem/18122일반적인 하노이탑에서 변형을 거친 하노이탑이다. 처음에는 하나씩 DP를 하면 될텐데 자꾸 틀리길래 어떻게 DP를 한 것일까 생각을 했다.처음에는 i-1 3번째 -> 빨간색 가운데 -> i-1 가
https://www.acmicpc.net/problem/1520처음에는 이걸 그래프로 변환해서 내려오면서 dp를 할까했는데 이게 그래프로 만들기 너무 귀찮고 그럴만한 문제도 아닌 것 같아서 안했다.다시 곰곰히 생각해보니까 시작점에서 상향식으로 하기에는 큐?로
이것도 컨셉을 보고 구현했다. 아무리 생각해도 부분으로 나눈게 최적해가 왜 되는지 이해가 안간다.https://www.acmicpc.net/problem/11066처음에는 이진 트리로 그리고 문제 풀이에 접근하거나 배낭문제 비슷하게 구현하지 않을까 생각은 했는
https://www.acmicpc.net/problem/1167예전에 비슷한 이야기를 들은 적이 있는 것 같아서 아무 점에서나 가장 먼 곳을 찾고 중복된 것 0으로 만들고 두번째로 먼 것을 찾으면 가장 길이가 긴 것이 나온다라는 것으로 구현했는데 안되길래 질
https://www.acmicpc.net/problem/2263곰곰히 생각하다가 분할 정복으로 풀 수 있다는 것을 보고 L V R로 각각 따로 나눠서 분할 정복하면 쉽게 풀렸다.다만 나는 inorder의 위치를 찾을때 반복문으로 찾았는데, 위치는 고정되어 있
https://www.acmicpc.net/problem/1238그냥 우선순위큐로 최적화한 다익스트라를 많이 많이 돌리는 문제이다. 이외의 별다른 풀이는 없다. 저번에 최적화 다익스트라를 처음 사용해봐서 익숙해질겸 풀어봤다.구현하는데 거진 30분 이상 걸린 것
https://www.acmicpc.net/problem/12015내 머리로 풀 수 있는 문제는 아닌 것 같아서 그냥 컨셉을 보고 풀었다. 신기했다. 다만 lowerbound 구현이랑 정확한 이해, 이거 구현을 제대로 알아야 할 것 같다. 나중에 세그먼트 트리
https://www.acmicpc.net/problem/14003이것도 전 포스트와 마찬가지로 내머리로는 풀 수 없을 것 같아서 컨셉을 보고 했다. 저장할때 저장한 위치를 저장하고 그것을 바탕으로 뒤에서부터 위치 순서대로 출력해서 했다. 뒤에서부터 memo에
https://www.acmicpc.net/problem/1007처음에는 어? 점, 어 다있는 건가? 어 트리? 해가지고 크루스칼 적용해서 풀었는데 다시보니까 점은 짝수고... 벡터는 절반이고... 그때부터 멘탈 나가서 다시봐도 기억안나서 밑에 분류보니까 완탐
https://www.acmicpc.net/problem/13460풀이 자체는 완전탐색으로 접근해서 빠르게 돌아갈 줄 알았는데 디버깅 과정에서 되게 많은 시간이 걸려서 당황했다. 아마 코드가 많이 더러워서 그렇지 않나 생각해본다.풀이는 완점탐색 + 겹치는 경우
https://www.acmicpc.net/problem/12100이 문제도 구현에 초점이 맞춰진 문제여서 (완전탐색이 가능한 조건임) 완전 탐색으로 풀었다. 먼저 이동하는 함수인 move, 병합하는 함수인 merge를 사용해서 move-merge-move를
https://www.acmicpc.net/problem/1014처음에는 그냥 dp를 잘 하면 풀 수 있지 않을까해서 조물딱 조물딱 거렸는데 50퍼까지만 가고 맞질 않았다. 나중에 반례 모음집에서 계속 돌려보니까 그냥 못푸는 방식으로 풀었었다. (아마 50퍼까
https://www.acmicpc.net/problem/5373이 문제는 그냥 구현을 하는 문제라 문제를 읽고 이해하는데에는 크게 어렵지 않았으나... 세부 구현을 하는 것이 너무 복잡? 헷갈렸다.주어진 조건을 보면 100개의 테스트케이스와 1000개의 이동
https://www.acmicpc.net/problem/2098이 문제는 저번 컨닝의 기술 문제 풀었던 비트 마스킹을 이용해서 푼다길래 그걸 기반으로 접근했다. 처음에는 그래프나 다익스트라로 접근할 수 있지 않을까 생각을 했는데 좀 생각해보니 안되는 것 같아
https://www.acmicpc.net/problem/1562처음에는 이 문제를 보고 왜 이걸 비트 마스킹을 사용해서 풀어야 할까... 생각을 했는데 나중에 문제를 보니까 모든 숫자를 사용한 계단수도 고려해야 하는 것을 보지 못했다... 다만 이렇게 계단수