스택구현문제이다시간초과 줄이느라 2시간이 넘게 걸렸다 하...자바에 익숙하지 않은 부분들 때문에 시간이 오래걸린다 아직은
https://www.acmicpc.net/problem/18258
처음과 끝에 "<", ">" 안 넣어서 틀린걸 모르고 3시간을 날렸네. 문제마다 정답의 양식이 다르다 보니 이런 황당한 일을 겪는다. 허탈하다...
https://www.acmicpc.net/problem/2164
https://www.acmicpc.net/problem/10866
https://www.acmicpc.net/problem/1874
https://www.acmicpc.net/problem/1935후위 표기식을 다시 이해하는데 시간 +ABC 알파벳을 글자로 변환하는 시간 +2시간 정도 걸려서 풀었다..
https://www.acmicpc.net/problem/1966
https://www.acmicpc.net/problem/2346ArrayList활용터진풍선은 remove 하지 않고 9999 라고 임의로 값을 덮어씌우고 탐색할때 9999면 분기처리하도록함다음 터질 풍선까지의 거리는 pangpang의 값이 바뀌므로 pangc
https://www.acmicpc.net/problem/10799
https://www.acmicpc.net/problem/2504겨우겨우 풀었다..
https://www.acmicpc.net/problem/2493초등학생들이 이런 문제를 푼단 말인가;;비교적 쉽게 풀었다 휴... 50분정도 걸렸다
https://www.acmicpc.net/problem/1620해시맵 2개 사용해서 금방 해결하였다
이상하네 벨로그에 올린줄 알았는데 안올렸네https://www.acmicpc.net/problem/2800https://hsin.hr/coci/archive/2011_2012/콘세스트 6테스트데이타 받고 ZAGRADE 폴더에서 테스트 케이스 볼 수 있
https://www.acmicpc.net/problem/22942x 축위에 있으므로 원이 아니라 x축위의 막대기 간에 겹치는것을 확인하면 된다는 생각을 하는것까지는 좋았는데막대기들의 중심을 기준으로 왼쪽부터 오른쪽으로 비교한다고 고민하니 답이 안나왔다결국 다
https://www.acmicpc.net/problem/14425해시셋 이용해서 금방 해결!
https://www.acmicpc.net/problem/11279
https://www.acmicpc.net/problem/7662트리셋으로 처음에 시도했다가 중복된 값 처리 때문에 포기우선순위큐 2개로 시도했다가 예외처리에서 막혀서 포기했다. 근데 이걸로 푼 사람이 있음나는 트리셋으로 해결할 방법이 떠올라서 이걸로 통과하였
https://www.acmicpc.net/problem/2075ArrayList 를 스택처럼 사용해서 풀었다시간복잡도는 최악의 경우 N^2 로 생각된다
https://www.acmicpc.net/problem/4358이 문제는 총 입력개수를 미리 알려 주지 않는다따라서 데이터를 읽고 끝내는 처리를 해야하는데 인터넷으로 찾아보고 시도해봤지만 다음입력까지 계속 대기하기만 하는 현상이 발생한다. 처음에는 Intel
https://www.acmicpc.net/problem/11286문제 하단에 최소힙, 최대힙 을 보고 아이디어를 얻어서 풀었다음수는 최대힙, 양수는 최소힙에 저장하고 꺼낼때는 절대값이 더 작은 쪽을 먼저 찾고 동일한 값이면 최대힙에서 제거하는 방식으로 해결하
https://www.acmicpc.net/problem/21939해시맵트리맵, 트리셋 3개를 써서 해결하였다. 잘 푼건지 싶다;;
https://www.acmicpc.net/problem/15651
https://www.acmicpc.net/problem/15649
https://www.acmicpc.net/problem/15652
https://www.acmicpc.net/problem/164393가지 치킨을 고를 수 있다. 중복되지 않고 3가지를 선택해야 한다는 의미이다.메뉴의 종류가 4개라고 하자. 어떤 사람의 치킨에대한 선호도는 1,2,3,4 이라고 치자. 그럼 1~4 숫자들중에서
https://www.acmicpc.net/problem/14620코드가 너무 길어지고 버그도 많이 나왔다;;
https://www.acmicpc.net/problem/12919bruteforce 알고리즘으로 메모리초과 시간초과가 나서 막혀서 결국 풀이를 보고 풀었다..
https://www.acmicpc.net/problem/2503어떻게 구현해야 할지 방향이 안잡혀서 다른 풀이를 보고 한참 생각하다 이해가 되어서 풀었다민혁이가 시도한 숫자와 스트라이크, 볼 개수 를 완전탐색으로 생성한 숫자와 비교하면 된다비교해서 스트라이크
https://www.acmicpc.net/problem/2961첫번시도에서 통과 했는데 코드 정리하다보니 최적화를 더 할 수 있을거 같아서 두번째 시도에서 시간을 많이 단축하였다. 완전탐색에서 중복재료선택을 줄였다.재료가 3개면, 완전탐색을 통해 3개중 1개
https://www.acmicpc.net/problem/14225
https://www.acmicpc.net/problem/14501다이나믹 프로그래밍 강의 들으면서 풀어보는중..
https://www.acmicpc.net/problem/1003
https://www.acmicpc.net/problem/14501
https://www.acmicpc.net/problem/1018
벨로그 왤케 버그가 나는거냐
https://www.acmicpc.net/problem/16508 처음에 풀이를 안보고 어떻게 풀지 고민했을때는 방향이 전혀 잡히지 않았다 ANT 를 만들려고 한다면 ANT 글자를 어떻게 만들수 있을지에만 골똘히 집중했었다 답이 안나와서 다른 사람들의 풀이를 보
처음엔 19가지 정도의 도형을 만들어서 풀어야 하나 생각했는데 코드가 너무 길어지는거 같아서 다른 풀이를 보고 이해하고 시도하였다 탐색 방향을 위 아래 왼쪽 오른쪽으로 하였다 위쪽 방면으로의 탐색 흐름을 보자 생각보다 깊고 복잡하다. 탐색 방향을 위 아래 왼쪽
https://www.acmicpc.net/problem/1065배열을 1001 개 선언해서 1부터 1000 까지 한수의 개수를 계산해서 저장하였다배열 1~99 는 그냥 for문 돌리면서 1~99 저장하면 된다100 부터는 한수인지 아닌지 판단하는 로직에 따라
https://www.acmicpc.net/problem/17626단순for문으로 푸는건 실패 하였다;;for문 돌리면서 숫자 n을 sqrt 하고 나온숫자를 카운트해서 min 변수에 최소값을 갱신하면 되지 않을까 했는데 안된다그래서 인터넷을 보고 풀이를 봐도
https://www.acmicpc.net/problem/15650같은 숫자 사용 X중복 조합 사용 X
https://www.acmicpc.net/problem/15654
https://www.acmicpc.net/problem/15655
https://www.acmicpc.net/problem/15656
https://www.acmicpc.net/problem/15664업로드중..
https://www.acmicpc.net/problem/15665
https://www.acmicpc.net/problem/15666
https://www.acmicpc.net/problem/1182완전탐색, 깊이우선 탐색, 이진 탐색, 방식으로 풀었다자기자신 중복 X( 1원소 하나인데 1+1 하는경우 나오면 안된다)조합 중복 X( 1+2 는 2+1 과 같다)만약 다음과 같이 입력을 했다면
https://www.acmicpc.net/problem/10971완전탐색으로 풀었다. 자기자신을 제외한 숫자 조합을 만들어서 풀었다012301320213023103120321102310321203123013021320등등의 조합을 만들었다시간복잡도는 N팩토리
https://www.acmicpc.net/problem/1174처음엔 0, 1, 2, 3, 4 이런식으로 탐색을 하면서 카운트를 해야하나 생각하고 너비탐색을 짜보려고 하다가.. 이런 방향이 맞는가 싶어서풀이를 찾아보았고그냥 완전탐색으로 해도 시간초과가 되지
https://www.acmicpc.net/problem/16922이전에 사용되었던 조합이 사용되지 않도록 하는 int start 코드를 사용했어도 합계가 동일한 상황도 있다. 전혀다른 원소들의 조합으로도 같은 합계가 나올 수 있다. 예를들어 10을 입력 받았
https://www.acmicpc.net/problem/14888더하기, 빼기, 곱하기, 나누기 연산자를 4개의 배열에 종류별로 개수를 입력으로 받아서 처리가 힘들었는데 변경하니 쉬웠다. 배열에 연산자의 종류를 담도록 해서 해결하였다.
https://www.acmicpc.net/problem/9663이문제의 경우 처음에 했던 생각은 체스판위에 퀸들은 각각 다른 행에 위치하게 되니까 1차원 배열로 표현하고 배열의 인덱스가 행이고 값이 열이면 되겠다고 생각하였다. 이전에 알고리즘강의에서 봤던 문
https://www.acmicpc.net/problem/6603K가 최대 12O(2^N)코드는 2510
https://www.acmicpc.net/problem/1026
https://www.acmicpc.net/problem/1946
https://www.acmicpc.net/problem/1931처음엔 끝나는 시간을 기준으로 정렬해서 제출했는데 IllegalArgumentException 이 떳다한참 구글링해서 찾다보니 compareTo 함수에서 Meeting객체의 end가 같은경우에 대
https://www.acmicpc.net/problem/2776해시셋으로 금방해결하였다
https://www.acmicpc.net/problem/11399정렬해서 더하기만 하면 된다더하는 부분이 살짝 헷갈렸다
https://www.acmicpc.net/problem/1744예외처리가 많아서 코드를 간결하게 하는게 어렵다
https://www.acmicpc.net/problem/2910
https://www.acmicpc.net/problem/7795
https://www.acmicpc.net/problem/5052처음에는 ArrayList 에 담아서 모두 순회하면서 비교해야하나 고민했다하지만 좀 더 생각해보니 알파벳 순서대로 정렬되있으면 인접한 것만 비교하면된다는 생각이 들었다알파벳 순서대로 정렬되도록 T
https://www.acmicpc.net/problem/2417Math.ceil 함수 사용하는 바람에 오히려 헤맸네
https://www.acmicpc.net/problem/2805시간복잡도 최악의 경우 나무를 자를수 있는 범위는 0~20억 이므로 이분탐색시 최대 31회 자르게 된다. 나무들의 개수는 최대 100만개이다20억을 2로 나눈 횟수(31) X 100만3천2백만.w
https://www.acmicpc.net/problem/13397완전탐색으로 할 수 있을까 시간복잡도를 대충 계산해보면 5000 개 숫자몇개의 구간으로 나누든 구간안에서 최대 최소를 탐색 해야한다 그럼 5000그리고 구간을 1로 나누는건 의미 없으니 2로 나
https://www.acmicpc.net/problem/2512
https://www.acmicpc.net/problem/3079시간을 이분 탐색해야 하는것까지는 생각해냈는데무엇과 비교해서 처리해야 할지 생각이 안떠올라서 풀이를 보고 문제를 풀었다특정 시간안에 몇명까지 처리 가능한지 구해서 비교하면된다예외처리때문에 시간이
https://www.acmicpc.net/problem/19637시간복잡도 M log(N)
https://www.acmicpc.net/problem/1072처음엔 실수형 자료형을 사용했는데 디버깅하다보니 long 형으로 분자만 100을 곱해서 해결하는 방법으로 바꾸게 되었다
https://www.acmicpc.net/problem/1654이문제같은경우 int형을 사용하면 어디서 오버플로우날지 몰라서 시간이 걸렸다그냥 다 long으로 해버렸다;;
카드를 배열로 받아서 배열에서 이분탐색을 하였다
https://www.acmicpc.net/problem/2343코드의 방향은 맞게 구현했는데 틀린부분은left 값 세팅을 0 으로 하면 틀린다만약2 21 9가 주어졌는데 1이 나올것이다 left를 0으로 세팅하였다면하지만 정답은 9이다1이면 블루레이2장에 강
https://www.acmicpc.net/problem/2110중간값 집간에거리c와 비교할 값은 집간거리를 통해 몇개 와이파이 설치가능한지 구하는 함수대략 어떻게 풀어야할지 감을 잡고 이대로 구현하면되는지 다른 사람의 풀이를 참고하였다시간복잡도nlog(xi)
https://www.acmicpc.net/problem/1260간선정보를 가지고 ArrayList 이차원 배열로 옮기는 작업이 생각보다 어려웠다그리고 dfs 를 재귀형식이 아닌 stack을 가지고 만들었는데잘못짜서5 5 11 22 33 11 43 5이 반례를
https://www.acmicpc.net/problem/7562어렵게 생각할 필요없이 그냥 다음 놓을 수 있는 위치를 너비탐색 하면된다다만 몇번을 가야 도착하는지 부분에서 어려웠는데 visit 을 boolean 에서 int 로 바꿔서 방문횟수를 기록해서 해결
https://www.acmicpc.net/problem/10026샘플 입력을 생각해보자R구역을 탐색하고(dfs 나 bfs) 그리고 다음 시작 지점은 어떻게 찾아야 하지 생각했고이중 for문으로 그리드를 전부돌면서 방문했는지 체크안되 있으면 시작지점으로 dfs
https://www.acmicpc.net/problem/2667
https://www.acmicpc.net/problem/2251이 문제를 처음에 A, B, C 물통을 하나하나 별개의 노드로 생각하고 풀려고 생각했는데 어떻게 구현해야 할지 막막했다. 풀이를 봤는데 A, B, C 에 물의 양이 차있는 상태를 하나의 노드로 삼
https://www.acmicpc.net/problem/2606어렵지 않게 풀었다그래프를 리스트로 변환깊이 우선 탐색으로 풀었다
https://www.acmicpc.net/problem/2644너비우선탐색visit 배열에 촌수 기록어렵지 않게 풀었다
https://www.acmicpc.net/problem/14502구현할게 많은 문제다. 완전탐색, 그래프 너비탐색을 구현할 수 있어야 한다.완전탐색으로 벽3개를 배치하도록 한다벽3개 배치된 상태가 되면 바이러스 퍼지는 시뮬레이션을 돌린다. bfs 든 dfs
https://www.acmicpc.net/problem/1012
https://www.acmicpc.net/problem/7576시작지점이 여러개일때 너비탐색하기너비탐색이 몇단계까지 가는지 기록하기외에는 어려운 부분은 없는 문제이다
https://www.acmicpc.net/problem/1987이 문제의 어려웠던 부분은이전에 탐색한 알파벳과 동일한 알파벳은 탐색할 수 없다는 조건이었다그것을 제외하면 탐색했던 곳도 또 탐색해야한다. HFD 로 탐색할 수 있고HADFJG 로도 탐색할 수 도
https://www.acmicpc.net/problem/11725샘플 예제를 그림으로 그려보고부모의 정보를 넣을 배열을 만들었고처음에는 너비탐색 하면서 동시에 Queue 에 추가할때마다 배열에 부모값을 넣기로 생각했는데깊이우선탐색을 연습할겸 깊이우선탐색으로
https://www.acmicpc.net/problem/5567내친구 + 내친구의 친구 까지만 초대하기친척문제와 비슷하다. 2촌, 3촌이 몇명인지 파악하는 그런문제였던가..?너비탐색으로 해결하였다
문제를 잘못 이해하고 있었다저 부분을 간과해버려서 한참 헤맸다;;첫째줄에서 무작위로 선택하다 1,3,5 선택하면 밑에줄의 3,1,5 집합과 일치하게 된다이런경우들이 많을 텐데 그중에서 집합의 원소개수가 가장 많은 경우를 찾는것이다초등부 문제인데 문제 이해하는것도 힘드네
https://www.acmicpc.net/problem/1743문제가 좀 그렇다 통로라고 하고 세로길이 좌우길이를 주니까 이게 뭔소린지;;그냥 건물안에 정사각형 방이 세로 몇개 가로 몇개 있다고 설명하는게 낫지 않나 싶다어려운 문제는 아니다. 서로 상하좌우
https://www.acmicpc.net/problem/2573구현은 어렵지 않은데 최적화가 어렵다
https://www.acmicpc.net/problem/16918시간순서대로 폭탄의 그룹을 알파벳으로 표현해봤다 x 표시는 폭탄이 터진것A는 가운데 폭탄 하나인 그룹B는 나머지 공간에 폭탄들 그룹C는 A가 터진후 빈공간에 설치된 폭탄들의 그룹D는 B가 터진후
문제를 읽다가 치즈에 구멍이 있다길래 뭔소린지 했는데표시된 부분이 치즈의 구멍이다..저 상태는 구멍이 닫힌 상태라서 공기가 없단다. 그래서 구멍안에서는 공기가 치즈와 닿지 않는단다하지만 위와 같이 표시된부분이 열리면 공기가 들어와서 치즈가 녹게된다빙산문제와 비슷하면서도
https://www.acmicpc.net/problem/17836Fail 이라고 출력해야 하는데 fail 로 출력한걸 모르고 1시간을 더 날렸네 하...
https://www.acmicpc.net/problem/16234어렵지 않게 풀수 있었다
https://www.acmicpc.net/problem/2178쉬운문제이다 너비 탐색으로 해결하였다
https://www.acmicpc.net/problem/16953숫자가 int를 넘어설 수 있다는 것을 유의 하자!같은 숫자 들어온경우 예외처리!
처음에는 불을 한칸 확장 시키고지훈을 BFS로 가장 가까운 외곽경로를 찾은뒤에 한칸만 이동하도록 반복하면 되지 않나 싶었다 그래서 만들었더니 틀리다고 한다생각해보니 위와 같은 경우 J는 위로 가려고 할것이고(BFS로 찾으면 위가 최단경로니까) 그리고 그림처럼 결국 불에
https://www.acmicpc.net/problem/14940
https://www.acmicpc.net/problem/4963시간복잡도 TWH
https://www.acmicpc.net/problem/13549BFS 로 풀었다HashMap으로 +- 는 +1, \*는 시간변화 없도록 저장하였다예외처리 때문에 시간이 걸렸다
https://www.acmicpc.net/problem/2583사각형 rect 객체 만들고맵돌면서 정사각형(1x1) 왼쪽 아래 기준으로 rect와 충돌하면 맵에 1표시하였다맵에 0인 부분만 bfs 로 탐색하면서 갯수와 넓이를 구하였다헷갈렸던 부분은 x,y 좌
https://www.acmicpc.net/problem/11403문제가 이해하는데 좀 어렵기는 했다 "모든 정점 (i, j)에 대해서" 이문장에서 정점의 개념과 (i,j를 원소로 갖는) "정점의 개수 N" 문장에서 정점의 개념(1, 2, 3등의 숫자) 이
https://www.acmicpc.net/problem/1043파티에 속한 사람들 정보를 가지고 그래프로 저장하는 부분이 어려웠다.그래프는 이차원 ArrayList 로 해결하였다진실을 아는 사람들을 시작점으로 삼아서 BFS로 그래프를 탐색하면서 연결된 사람들
이차원 ArrayList 로 graph 만들고 1~100 까지 for문 돌면서 하나씩 시작점부터 갈 수 있는 모든곳의 값을 더해서 가장 작은 값을 구하면 될것 같다
https://www.acmicpc.net/problem/11724
그냥 이중 for문 돌렸더니 시간초과 난다시간복잡도가 1~N 까지 더한 수가 된다수열크기가 100000 이니까 최악의 경우 시간복잡도는 (N+1) \* (N/2) 5,000,050,000 인듯하다투포인터 강의를 살짝 보니 옛날에 풀었던 리트코드하면서 풀었던 기억이 났다
https://www.acmicpc.net/problem/1940
https://www.acmicpc.net/problem/15565leetcode 에서 슬라이딩 윈도우문제를 경험한 덕분에 풀 수 있었다
https://www.acmicpc.net/problem/1253시간복잡도N\*N 4천만?투포인터로 풀었다다음 반례가 푸는데 큰 도움이 되었다70 0 0 3 3 3 3ans760 0 3 3 3 3ans4
https://www.acmicpc.net/problem/2003i부터 j 까지의 합이 m이되는 경우를 찾는것이다주의할것i부터 i 까지의 합이 m이되는 경우도 있다생각보다 까다로운 문제였다다음 반례가 도움이 되었다3 11 2 1ans:2투포인터로 풀었다시간복잡
https://www.acmicpc.net/problem/2559K의 숫자가 정해져 있어서 쉬운 문제였다..시간복잡도 N/K ?
https://www.acmicpc.net/problem/1920해시셋으로 해도 되지만 다시 기억을 되살릴겸이분탐색으로 풀었다 오랜만에 하니까 가물가물하네;;
https://www.acmicpc.net/problem/17609풀긴했는데 억지로 푼 느낌이다;;도움이된 반례모음21abbabaabaaabaaaabaaaaabaaaaaabaxaaxaaabcddadcaaabcbcaaababbabaaabcababbasumumuu
https://www.acmicpc.net/problem/2118어떻게 풀어야 할지 감이오지 않아서 고민하다가 결국 풀이를 보고 참고하였다r 은 rabbit t 는 turtle 라고 생각하고 짬rhead 는 r 과 t 사이의 거리thead 는 t(가 머리가되는
https://www.acmicpc.net/problem/2018첨에 left 1 right 2 로 시작했다가 틀렸다N 자기자신도 사용할 수 있다는 사실!
코드에 상수를 쓴걸 모르고 한참 헤맸다;;초밥 종류 +1 만큼 배열 변수 type 를 선언하고 특정 초밥이 몇개 있는지 카운팅을 한다특정 초밥이 0개 였는데 1이 될때 초밥종류 typeCnt++특정 초밥 개수가 1에서 0이 되면 초밥종류 typeCnt--방식으로 풀었다
https://www.acmicpc.net/problem/1806어떻게 풀어야할지 감은 오고 구현도 된다자잘한 예외처리 때문에 시간이 걸린다
틀렸던 부분더하는 값 저장하는 변수 타입 long 으로 고침위의 코드를 수정함이상한 실수를 자주한다;;
https://www.acmicpc.net/problem/1644
https://www.acmicpc.net/problem/20922K개 이하로 중복되는 정수들을 체크하는 부분이 어려웠다 K 초과할때 체크하는건 쉽지만K보다 미만이 될때 체크하는건 어렵다고 생각했는데 그렇지 않다K 초과 하는 정수가 하나라도 나오면 바로 l++
문제를 어떻게 풀어야할지 고민했다만약에 1,2,3,4,5 가 있다면 다음과 같은 경우들이 있다그리고 슬라이딩 윈도우로 풀어야 겠다고 생각했는데아래와 같은 조합들을 슬라이딩 윈도우로 만들 수 가 없었다그래서 고민하다가 풀이를 보아도 이해가 되지 않았는데 조합을 만드는 순
중위탐색을 통해서 이차원 ArrayList 로 담으려고 하니까 어려웠다한참 고민하다 배열을 반으로 나누고 중간값을 저장하는 재귀함수를 사용해서 해결하였다.
https://www.acmicpc.net/problem/1991어려운 문제가 아님에도 한참을 헤맸다전위순회 중위순회 후위순회는 다시 볼때마다 새롭다재귀함수가 아직도 어렵다재귀함수에 인자를 처음에는 로 했었는데 코드가 엄청 길어지고 복잡했었다. 인자를 int
https://www.acmicpc.net/problem/5639노드를 정의한뒤에 이진검색트리 조건대로 노드를 추가하도록 하였고후위 순회 재귀함수로 출력하도록 하였다노드를 사용하지 않고 풀어보려고 하였지만 잘 안됨Binary Tree의 시간복잡도가 어떻게 되나
https://www.acmicpc.net/problem/15681문제에서 해답을 알려주고 있다트리는 이차원 ArrayList로 하였고재귀함수로 탐색하였고 함수 반환할때 subCount라는 배열에 현재 노드를 root로 하는 subtree의 노드개수를 담아서
https://www.acmicpc.net/problem/9372샘플예제를 직접 그려보면서 최소가 되는 경우를 어떻게 찾아야 하지 고민하다가 풀이를 보았다저 문구들이 있다면 MST를 떠올리자최소신장트리
스태틱 변수 만들고 로컬변수 이름 같은거 사용하는줄도 모르고 시간 날렸네 하...구현은 어렵지 않았는데 삭제할때 경우에 따라 처리하는 부분리프노드 파악할때도 경우에 따라 처리하는 부분들 때문에 예외처리하느라 오래걸렸다https://www.acmicpc.net/
https://www.acmicpc.net/problem/1753
https://www.acmicpc.net/problem/17191에서 6 가는거는 2인 이유가1-2-5-6이어서다. 중간 경유지중에 가장 앞선거를 출력해야한다. 이부분 때문에 어려웠는데위의 코드로 해결하였다.
https://www.acmicpc.net/problem/1504다익스트라를 수정해서 중간경유지를 지날때 체크해보려고 했으나 해결방법이 떠오르지 않았다다른 사람의 풀이를 보았고그냥 다익스트라를 여러번 돌려서 해결하였다그리고 dis 배열을 다음부턴 long으로
https://www.acmicpc.net/problem/11779너비탐색으로 풀려고 짜다가 가중치가 있어서 안되는구나 깨달음이 옴그래서 다익스트라로 풀었다경로를 출력하는 부분이 어려웠는데거리값을 저장하는 배열을 이차원배열로 만들어서 해결하였다현재 노드의 이전
https://www.acmicpc.net/problem/1238예외처리 잘못한것 때문에 시간 날렸네 하...저렇게 예외처리 만들고 X마을에서 모든 마을 도착 비용 구할때 호출하면위와 같이 호출하니 X 가 1 인 테스트케이스인경우 return 되면서 거리 배열
https://www.acmicpc.net/problem/4485와우 코스트 계산할때 > 와 >= 의 차이가 크다. 메모리 초과 해결하였다
https://www.acmicpc.net/problem/11047
https://www.acmicpc.net/problem/11000
https://www.acmicpc.net/problem/1541문자를 숫자로 바꾸고숫자들을 연산처리하는 부분이 시간이 걸리긴 했지만어려운 문제는 아니었다
https://www.acmicpc.net/problem/11501풀긴했는데 뭔가 시간을 보니 비효율적으로 짯네;;풀이는 다음과 같다int 배열로 가격을 받았다TreeMap 으로 가격을 내림차순으로 만들고 수량도 체크하였다.배열을 순회하면서TreeMap 에서
풀이를 보고 직접 풀어보긴 했는데왜 저렇게 되는지 잘 이해되지 않는다일단 이렇게라도 풀어보기라도 해야지 시간이 없으니께
https://www.acmicpc.net/problem/13975골드4단계 문제 치고는 빨리 풀었다;;
https://www.acmicpc.net/problem/1463아직도 동적프로그래밍에 대한 기초가 부족하네강의들으면서 풀었다
https://www.acmicpc.net/problem/2579강의를 보고 서야 풀수 있었다;;너무 어렵다 후..단순히 최대값을 dp 에 담아서 구하면 되겠지 하고 했는데 안된다2차원 dp배열을 만들고 이전에 건너뛰어 온건지, 연속해서 밟은건지를 저장해야한다
https://www.acmicpc.net/problem/11660점화식을 찾는데 실패해서다른 사람의 풀이를 보았는데행의 합을 dp로 구해놓고 푸는 방법이었다. 아이디어를 얻고 직접 풀어보았다시간복잡도가 별로이긴한다근데 O(NM) 이니까 대략 최악의 경우 1억
https://www.acmicpc.net/problem/11726O(N)
https://www.acmicpc.net/problem/1149어떻게 풀어야 할지 몰라서 풀이를 보다가 힌트를 얻고 풀었다https://www.acmicpc.net/problem/2579문제와 거의 같은 방식으로 풀 수 있다하나씩 가능한 경우를 확장
https://www.acmicpc.net/problem/11053규칙찾는거 실패해서 풀이를 보고 풀었다 휴...DP 어렵다마지막에 가장 큰 값을 DP배열에서 찾아서 출력해야하는걸 안해서 한시간을 헤맸다;;a라는 숫자보다 왼쪽에 있는 숫자들 중에서 a 보다 작
https://www.acmicpc.net/problem/12865풀이를 봐도 명확하게 이해가 되지 않는다그나마 도움이 되었던 사이트https://www.geeksforgeeks.org/0-1-knapsack-problem-dp-10/참고하면서 겨우
https://www.acmicpc.net/problem/1932
https://www.acmicpc.net/problem/12852규칙을 찾는게 아직도 어렵네
https://www.acmicpc.net/problem/15486예외처리가 너무 복잡해져서 자꾸 틀렸는데 다른 풀이를 찾아보니뒤에 하나더 붙여서 처리해야 코드가 간결해진다이전에 풀었던 문제와 같은 방식으로 풀었다
https://www.acmicpc.net/problem/10844풀이보고 겨우 풀었다
https://www.acmicpc.net/problem/6443처음에 dfs로 순열조합을 만들고 hashset 을 사용했으나 메모리 초과가 났다그래서 hashset 을 제거하였으나 이번에는 출력초과가 났다. 중복이 제거가 안되어서그랬다결국 한참 고민하다 해결
https://www.acmicpc.net/problem/20166원하는 글자 개수가 다 다를 수 있다시간초과답이 없으면 0출력1,2 7,8 번 테스트케이스 통과를 몬하네...10x10x5^8import java.io.;import java.util.;publ
https://www.acmicpc.net/problem/17212DP배열 만들고 인덱스가 금액. 값이 동전개수구하려는 금액의 인덱스 = 금액인덱스 -1, -2, -5, -7 의 인덱스들 중에서 동전개수 가장 작은거 + 1DP문제중에 계단 문제가 잇는데 비슷하
https://www.acmicpc.net/problem/20055구현문제이다. 어렵지는 않았는데 구현하는데 시간이 오래결린다. 예외처리도 힘들었다 배열을 많이 사용하다보니.
https://www.acmicpc.net/problem/24479진트리 구조이고 가운데는 출력 안하면되겠다 라고 생각까지 하였는데노드 하나씩 출력하려니 어떻게 해야할지 감이 안 잡혔다.0.0 위치의 노드를 출력하고 0.1 을 출력하는건 어떻게 해야하지?출력을
https://www.acmicpc.net/problem/15886연결관계를 ArrayList 를 노드로 하고 노드가 어떤 노드와 연결되있는지 HashSet 에 저장함HashSet 끼리 교집합이 있으면 연결된 것들이므로 인형이 하나 필요하게됨위의 그림처럼 두개
https://www.acmicpc.net/problem/18114풀이를 도저히 모르겠어서 검색해보고 참고해서 풀었다...;;핵심은 이분탐색을 두번하는것이다
https://www.acmicpc.net/problem/2436최대공약수6, 최소공배수180 을 만족하는 숫자 조합을 적어보다가 규칙을 발견하였다숫자를 하나 만들어서 증가시키면서 6에는 곱하고 180에서는 나누면 숫자 조합이 만들어진다그래서 이방식을 사용해
https://www.acmicpc.net/problem/1254오른쪽에서 추가하는것이고 짧은 팰린드롬을 구하는 것이니까 왼쪽 끝에서부터 인덱스를 증가시키면서 팰린드롬인지 확인하고. 이미 팰린드롬인 부분을 구한다. 나머지 팰린드롬이 아닌부분의 크기를 입력받은
https://www.acmicpc.net/problem/2671그냥 짜서 해결하려다가.. 시간이 너무 아까워서 그냥 풀이보고 풀었다..;;
https://www.acmicpc.net/problem/145610^14 까지 입력을 받는다고 한다. 엄청 큰수이다. 이거를 줄일방법을 먼저 생각하였다어떤 소수 N의 거의소수중 가장 작은수는 N^2 이다. 거의소수는 10^14을 넘지 않아야 한다.즉 10^7
https://www.acmicpc.net/problem/10816
https://www.acmicpc.net/problem/7569처음에 기존에 짜던데로 하면 시간초과가 나서 어떻게 개선해야할지 고민하다 검색해보고 개선하였다큐에 1인걸 처음에 다 집어넣고 그냥 돌리면 된다...근데 카운트를 하루에 한번씩 올려야하기 때문에 f
https://www.acmicpc.net/problem/20040BFS로 풀어보려 했으나 막혀서 검색해봄.유니온파인드를 사용하면 쉽게 해결된다...
https://www.acmicpc.net/problem/16195규칙을 찾는게 어렵다 검색해서 규칙을 알았는데 왜 그렇게 되는건지 모르겠다
https://www.acmicpc.net/problem/7511유니온 파인드시간복잡도 O(t \* (k + m))
https://www.acmicpc.net/problem/15918두 숫자사이의 간격이 정해지면 숫자를 구할수 있다는 사실을 생각해내지 못했다그리고 dfs 로 완전탐색을 많이 해봤지만 아직도 익숙하지 않아서 구조를 바꾸는게 어렵다그래서 검색을 해보고 풀었다그래
https://www.acmicpc.net/problem/4836그냥 if조건문을 마구 사용해서 풀었다..;;
https://www.acmicpc.net/problem/20208완전탐색을 수정해서 풀었다.dfs
https://www.acmicpc.net/problem/15724점화식 유도가 어렵다..누적합이라는 방식은 처음 접해본다.
https://www.acmicpc.net/problem/21924최소신장트리크루스칼 유니온 파인드 알고리즘을 적용해서 풀었다.7개월 전에 공부했던게 하나도 생각안나서 유투브 강의 다시 보고 블로그 정리한거 다시 읽고 풀 수 있었다. 알고 나면 어려운 알고리즘
https://www.acmicpc.net/problem/7490수열의 숫자들이 오름차순으로 고정되있다는걸 처음부터 생각하고 만들었으면 더 코드가 간결했을거 같다
https://www.acmicpc.net/problem/2115
https://www.acmicpc.net/problem/16926 그냥 for문으로 일일이 swap 처리하면 시간초과 날거 같아서 매트릭스를 바깥쪽 부터 한 겹씩 라인이라고 생각하고 따로 저장하고 회전했을때의 시작위치를 찾아주고 라인의 시작위치부터 다시 한 겹씩
https://www.acmicpc.net/problem/17175DP문제 기본을 다지기에 좋은 문제다처음엔 그냥 fibonazi를 그냥 코드로 짜서 호출횟수 돌려 봤는데 시간초과가 났다 그래서DP문제인것을 알게됨
https://www.acmicpc.net/problem/5547풀긴했는데 시간이 너무 오래걸렸고 그리고 샘플문제의 번호 체계가 뭔가 구현하기가 안 맞는다고 해야하나. x, y 가 뒤바뀌었다고 해야하나 그래서 엄청 헷갈렸다..
https://www.acmicpc.net/problem/5427문제를 어떻게 풀어야 할지 방향은 맞았는데 시간초과와 틀리는 부분들 때문에 한참 걸려서 풀었다.처음에 불을 이중for 돌면서 하나씩 추가 해주는것 때문에 시간초과가 났다그래서 que에 모든 불의
https://www.acmicpc.net/problem/9613유클리드 호제법을 기억해야 함
https://www.acmicpc.net/problem/17951이 문제는 이해하는데 어려움을 많이 겪었다문제가 요구하는것은시험지의 순서를 변경할 수 없다시험지를 그룹으로 묶는다 그룹의 합계를 구한다. 합계중 가장 작은 값이 현수의 점수가 된다.그러므로 이
https://www.acmicpc.net/problem/1025공차가 0인것도 등차수열이다!문제를 이해하기가 왤케 어려운 걸까행과 열이 등차수열을 이루도록 숫자를 만들어내는 부분이 어려웠다
https://www.acmicpc.net/problem/13305현재 가격보다 다음이 낮으면 현재 필요한것만큼 구매현재 가격보다 다음이 높으면 낮은거 찾을때까지 구매
로직을 짜는건 쉬웠다.. 근데 출력처리에서 반례를 찾는데 한참 걸렸고 입력받을때 문자를 숫자로 변환하는 함수가 틀려서 이거 찾는것도 한시간이나 걸려서 겨우 찾았다...덱? 은 안쓰고 투포인터로 풀었다https://www.acmicpc.net/problem/54
https://www.acmicpc.net/problem/2138이문제는 완전탐색으로 풀 수 없다... 어떻게 풀어야 할지 찾아봄
https://www.acmicpc.net/problem/16168버텍스마다 간선연결개수가모두짝 OR 두개홀 이면 오일러경로 있다
https://www.acmicpc.net/problem/1487510 110 520 1120 155 0
https://www.acmicpc.net/problem/2073 DP문제는 어렵다.. 새로운 문제가 나올때마다 풀 수 있는 방법이 떠오르지 않는다 이번 문제는 DP문제인지도 몰랐다;; 코드 풀이 dp 배열의 인덱스는 길이. 값은 용량이다. 특정 길이를 만드는데
https://www.acmicpc.net/problem/19949
https://www.acmicpc.net/problem/20007다익스트라 강의를 다시보고 풀었다비효율적인 선형구조로 풀었다
https://www.acmicpc.net/problem/22856 중위순회의 마지막 멈추는부분 이동할때마다 카운트 하는 부분이 어러웠지만 풀어냈다~
https://www.acmicpc.net/problem/21919소수인지 판별하는 방법 알아야 풀 수 있다.최대공약수 구하기a(더작은수) 와 b 의 숫자에서 b % a = r하고 b = a, a = r 로 해서 또 b % a = r 해서 r이 0이될때까정 반
완탐으로 해결해 보려고 하였으나 실패 역시나. 값이 너무 크다어렵다점화식을 봐도 왜 이렇게 되는것인지 이해되지 않는다
https://www.acmicpc.net/problem/14284일단 그림을 그려서 문제를 이해하려고 보니일단 문제에서는 간선 연결을 마음껏 수정해서 1, 8 연결이 최소의 가중치가 되도록 하라는 것이다. 그렇다면 연결을 미리 전부 해놓은 상태에서 1에서 8
https://www.acmicpc.net/problem/18513너비탐색이라는 힌트를 얻어서 풀 수 있었다
https://www.acmicpc.net/problem/12933단순구현문제
https://www.acmicpc.net/problem/15810이분탐색을 감을 잡아야 하는데 멀었다
https://www.acmicpc.net/problem/3980완탐을 할때 시간복잡도가 11! 아닌가 싶었는데 아니다5! 인거 같다오랜만에 힌트도 안보고 푼 문제라서 그리고 한번에 성공해서 굿!
https://www.acmicpc.net/problem/2565처음에는 단순히 가장 많이 교차하는 전선을 찾아서 하나씩 순차적으로 제거하면서 교차여부를 판정하면 안될까 싶었지만 안된다이문제는 DP인데 DP로 풀 수 있는지조차 몰랐다그리고 이문제는 가장긴증가하
https://www.acmicpc.net/problem/19583단순구현문제 어렵지 않았다..
https://www.acmicpc.net/problem/1915DP문제 일까 결론내리고 분류를 보니 맞았다. 근데 풀 방법은 떠오르지 않음;; GPT의 도움을 얻어서 풀었다DP이차원 배열 만듦왼쪽, 위쪽, 왼쪽위쪽 중에 가장 작은거 + 1을 현재 위치에 세팅
https://www.acmicpc.net/problem/1922최소신장트리 문제라는건 알았으나... 크루스칼이 기억나지 않아서 다시 이론을 살짝 보고 직접 짜보고 틀린부분들을 고쳐서 풀수 있었다.
https://www.acmicpc.net/problem/1166이문제 어렵다숫자도 오버플로우 나기 쉽상이다큰박스 넓이를 구해서 작은박스의 넓이로 나눌때l, w, h 별로 다 따로 구해줘야 한다이분탐색할때 종료조건을 left,right를 사용하지 않고 for문
https://www.acmicpc.net/problem/2469단순구현 문제였다.. 좀더 간단하게 구현하고 싶었는데 그게 잘 안되네
https://www.acmicpc.net/problem/21922BFS 로 풀었다 코드가 너무 크다
https://www.acmicpc.net/problem/1956플로이드 워샬이 3중 for문이구나...두 지점간의 가장 짧은 거리를 구하는 것이다.이 문제같은 경우 자기자신으로 사이클이 생길 수도 있는 예외가 있다바깥쪽 for문이 중간경로중간쪽 for문이 시
https://www.acmicpc.net/problem/20546 단순 구현문제이다
https://www.acmicpc.net/problem/15270BFS로 풀려고 했는데 실패...찾아보고 참고해서 풀었다.
https://www.acmicpc.net/problem/2293DP문제였다.. 점화식 알면 쉬운데 모르면 어려운 문제다
https://www.acmicpc.net/problem/2294DP는 어렵다..
https://www.acmicpc.net/problem/14503
https://www.acmicpc.net/problem/14889
https://www.acmicpc.net/problem/1138
https://www.acmicpc.net/problem/2304가장 큰 기둥을 찾는다. 왼쪽에서 이전보다 높은 기둥일때만 넓이를 구하고 가장 큰 기둥까지만 루프 돌게 하였다. 오른쪽에서도 큰 기둥까지 이전보다 높은 기둥일때만 넓이를 구하였다.
https://www.acmicpc.net/problem/20920
https://www.acmicpc.net/problem/17266거리가 홀수일때에 대한 예외처리 때문에 시간이 더 걸렸네
https://www.acmicpc.net/problem/3190
https://www.acmicpc.net/problem/15683
https://www.acmicpc.net/problem/1515어렵다..찾아보고 아이디어를 얻어서 나만의 방식으로 풀었다can 숫자를 증가시키면서 풀었다.
https://www.acmicpc.net/problem/21921
https://www.acmicpc.net/problem/15685회전을 어떻게 처리할지 아무리 생각해도 좋은 아이디어가 떠오르지 않았다그냥 방향 정보만 저장하면 되는것이었다...
https://www.acmicpc.net/problem/19941
https://www.acmicpc.net/problem/17144
https://www.acmicpc.net/problem/17140배열을 동적으로 변경해가면서 짜야하는 줄알고 엄청 복잡하게 짜다가어차피 100x100 크기를 못벗어나네 그리고 R,C연산 끝날때마다 rowsize, colsize 최대값을 저장하면 되잖아란 생각
https://www.acmicpc.net/problem/17142이 문제는 테스트케이스가 잘 되어있어서 디버깅을 금방 할 수 있었다
https://www.acmicpc.net/problem/3758
https://www.acmicpc.net/problem/20310자리를 재배치 할 수 없다.. 라는 제약이 있다
https://www.acmicpc.net/problem/20006
https://www.acmicpc.net/problem/1406스택 2개를 사용해서 풀어야 하는 문제찾아보고 풀었다..
구현하고 디버깅하는데 3~4시간은 걸린듯하다 하...https://www.acmicpc.net/problem/17822
https://www.acmicpc.net/problem/13335
https://www.acmicpc.net/problem/17615
https://www.acmicpc.net/problem/1522문자열 교환이라는 의미를 단순히 b 라는 글자를 a로 바꾼다는것으로 이해를 해서 문제를 해석하지 못했었다.a와 b를 자리교체 한다는 의미였다abababababababa 를 3번 자리교체 해주면 된
https://www.acmicpc.net/problem/19236구현량이 많은 이런문제는 짜증만 나는거 같다...
https://www.acmicpc.net/problem/1051완탐으로 해결함...무려 4중포문이다..
https://www.acmicpc.net/problem/14719가장 낮은곳 비어있는곳부터 양 옆으로 벽이 있으면 물을 채우는 방식으로 풀었다!!
https://www.acmicpc.net/problem/5972
https://www.acmicpc.net/problem/1058문제는 플로이드 워셜로 풀 수도 있는데 나는 bfs로 어찌저찌 풀었다..
https://www.acmicpc.net/problem/2467
https://www.acmicpc.net/problem/1063
https://www.acmicpc.net/problem/1074처음에는 4중 for문으로 작성했는데 시간초과가 났다모두 다 순회하다보니 2^15 \* 2^15 이라서 그러하다
https://www.acmicpc.net/problem/22251
https://www.acmicpc.net/problem/2631DP 문제는 어렵다...LIS 를 찾는게 관건이다. 수열의 순서는 그대로 놔두고 가장긴 증가하는 부분수열을 찾는것이다.부분수열의 값들은 붙어있지 않아도 된다. N 에서 부분수열을 빼면 자리를 옮겨
https://www.acmicpc.net/problem/1189
https://www.acmicpc.net/problem/21608
https://www.acmicpc.net/problem/1326
https://www.acmicpc.net/problem/30611부터 차례대로 목적지까지 swap 한 횟수 반환
https://www.acmicpc.net/problem/20057디버깅하는데 오래걸렸다..
https://www.acmicpc.net/problem/1347
https://www.acmicpc.net/problem/1342
https://www.acmicpc.net/problem/21610
https://www.acmicpc.net/problem/1697
https://www.acmicpc.net/problem/1002
https://www.acmicpc.net/problem/11052dp 1 의 최대값은 P1dp 2 의 최대값은 dp1 + P1 또는 P2dp 3 의 최대값은 dp1 + P2 또는 dp2 + P1 또는 P3
https://www.acmicpc.net/problem/9996'\*' 이 앞, 끝, 중간 있는 경우 나눠서 처리하였다
https://www.acmicpc.net/problem/9375
https://www.acmicpc.net/problem/1213
https://www.acmicpc.net/problem/1213