본문 바로가기

반응형

전체 글

TRIANGLEPATH TRIANGLEPATH 기본적인 DP 문제. 시간 복잡도는 한줄 밑으로 내려갈 때마다 2배씩 증가하므로 2^n-1 이 된다. 따라서 n의 최대값이 100이 시간 내에 구할 수 없게 되므로 DP 를 이용해야 한다. cache[x][y] 는 x,y 에서 얻을 수 있는 최대 점수 cache[x][y] = map[x][y] + max(cache[x+1][y] , cache[x+1][y+1]) 현재 자신의 값 + MAX((x+1,y) 에서 얻을 수 있는 최대값 (x+1,y+1)에서 얻을 수 있는 최대값) 가 되므로 이를 재귀 함수를 이용해서 구현할 수 있다. 굳이 cache 값을 -1로 초기화 하지 않은 이유는, 조건에서 map에 들어가는 값은 1이상 이기 때문에 123456789101112131415161718.. 더보기
WILD CARD WILD CARD 헷갈리는 부분이 은근히 많았다... 뭔가 제대로 정리를 하지 않고 풀었다. 종만북에서 DP문제로 정해져있지만, 완전탐색을 이용해도 시간내에 해결할 수 있는 문제이다. 이 문제에서 핵심은 * 를 어떤식으로 해결하느냐이다. 나는 for문을 이용해서 *을 0칸부터 비교할 string의 끝칸까지 돌리는 방법으로 문제를 해결했다. //하나씩 비교 (맨마지막까지) if (wc[wc_idx] == '*') { for (int i = str_idx; i tc; for (int t = 1; t > wc; cin >> n; for (int i = 0; i > str; go(0, 0); if (chk) ans.push_back(str); } sort(ans.begin(), ans.end()); for (i.. 더보기
컴파일 과정 http://gracefulprograming.tistory.com/16 참고사이트 더보기
volatile , restrict 컴파일러가 최적화를 하면, 중복되는 값을 스스로 판단해서 위의 그림처럼 진행한다. 그래서 최적화가 없어야 하는 변수에는 volatile 이라는 한정자를 지정하게 된다. volatile 은 영어 뜻이 '휘발성이 있는' 이라는 뜻인데, 값이 날아가기 때문에 다시 읽어들여야한다. 즉 변수에 volatile 을 붙이면 아래의 그림처럼 그 데이터가 최적화를 하지 않게 된다. volatile = '최적화를 하지 말아라' 그 반대로 사용하는 한정자는 restrict = ' 최적화를 해라' http://lunakimvision.blogspot.com/2016/11/volatile.html (volatile 사용 이유) http://heurinbada.tistory.com/25 참고 사이트 더보기
필수 라이브러리 설명 https://tensorflow.blog/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D/1-4-%ED%95%84%EC%88%98-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC%EC%99%80-%EB%8F%84%EA%B5%AC%EB%93%A4/ 감사합니다 더보기
JUMPGAME(C언어) JUMPGAME 그냥 풀면 시간초과가 발생하기 때문에, DP로 접근해서 문제를 풀어야했다. 계속 문제에서 틀렸던 부분이 있었는데 원래 아래 처럼 작성했을 때에는 계속 오답이 발생했다. *ret = jump(cache,map, x + move, y, n) + jump(cache,map, x, y + move, n); 하지만 아래처럼 바꿀경우 정답이 통과되었는데... 그 이유를 모르겠다. *ret = jump(cache,map, x + move, y, n) || jump(cache,map, x, y + move, n); 원인해결 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455.. 더보기
DICTIONARY DICTIONARY 다시 풀어본 문제, 좀 고민했지만 위상정렬 문제. 옛날 풀이가 위상정렬을 공부하고 풀었기 때문에 더 깔끔하게 푼 것 같다. 아무튼 위상 정렬에는 DFS 로 푸는 방법과 BFS로 푸는 방법이 있는데, 나는 이제 BFS로 익숙해져있다. C언어로도 한번 바꿔봐야 겠다. 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511.. 더보기
파이썬 __str__ 와 __repr__ http://hyeonjae-blog.logdown.com/posts/776626-python-str-repr 더보기

반응형