Algorithm
-
알고리즘 문제 사이트에서, 정답코드와 테스트 케이스를 공개해야 하는 이유책, 강연, 스터디 2020. 4. 11. 11:31
ALGOSPOT, BOJ, Leetcode 등의 사이트에서 알고리즘 문제를 풀어 보면서, 정답코드와 테스트 케이스를 공개하는 것이, 알고리즘 문제풀이를 공부하는대 더 도움이 된다고 생각하게 되었습니다. 물론 공개하지 않는 것도 나름의 이유가 있을 것이구요, 이글에서 공개 여부에 따른 장단점을 알아보고, 문제풀이를 공부하는대 보다 도움이 되는 방향이, 공개인지, 비공개인지 대해서 이글에 적어 보고자 합니다. 이글에서 정답코드는 어떤 알고리즘 문제의 모든 테스트케이스를 통과한 코드를 말합니다. 테스트 케이스는, 특정 알고리즘 문제를 올바르게 풀어낸 코드 인지 확인하기 위한, 입력/출력의 한쌍을 뜻합니다. 일반적으로, 한 알고리즘 문제는 몇개에서 몇십개(또는 그 이상)의 테스트 케이스를 가지고 있구요, 코드가..
-
Prefix sum / 누적합, 구간의 합 구하기카테고리 없음 2020. 1. 21. 11:12
N - Slimes /atcoder.jp (https://skysign.tistory.com/170) 문제에서 사용된 알고리즘으로, prefix sum 알고리즘이 있습니다. prefix sum을 활용하면, 1차원 배열이 있다고 할 때, 1차원 배열의 특정 구간 x ~ y 까지의 합을 빠르게 구할 수 있습니다. \begin{aligned} 1 \leq n \leq N \\ a_x \in ( a_1 ... a_n ) \\ a_y \in ( a_1 ... a_n ) \\ 1 \leq x < y \leq N \\ \end{aligned} 자바 코드는 아래와 같습니다. long[] as = new long[N+1]; long[] prefixSum = new long[N+1]; for(int i=1; i
-
3. Longest Substring Without Repeating Characters / leetcode.com카테고리 없음 2019. 12. 28. 12:36
Dicussion에 보니까, O(N)방법도 가능하더라구요... 어제.. 아니지, 오늘 새벽에 잠안와서 코딩하느라고, O(N^2)으로 풀었네요 ㅋㅋ ps : 잠 안온다고, 코딩하지 맙시다. 문제 링크 : https://leetcode.com/problems/longest-substring-without-repeating-characters/submissions/ 문제 해설 : https://velog.io/@yejinh/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-LeetCode-Longest-Substring-Without-Repeating-Characters-3rk3n08jvu Submission : https://leetcode.com/submissions/detail/28911..