Java

    Heap 메모리 vs Stack 메모리

    Heap 메모리 vs Stack 메모리 Stack 메소드 호출시에 처리되는 매개변수, local변수 등이 저장되며, Stack구조로 되어있다. Heap 배열이 생성되는 공간이며 GC는 Heap 메모리 공간 내에 object 중에 참조값이 없는 object에 대해서 실행하여, heap 메모리 영역을 청소한다. 또한, heap 메모리 영역의 모든 object는 프로세스(application) 내에서 전역적으로 액세스가 가능하며 참조가 가능하다. Method Area Class정보를 처음 메모리 공간에 올릴 때, 초기화되는 대상을 저장하기 위한 메모리공간.(메소드 정보,class type정보 등) class 변수도 함께 저장하는데, 그것은 static variable과 같다.

    SWEA] 4796. 의석이의 우뚝 선 산

    SWEA] 4796. 의석이의 우뚝 선 산 SWEA 3131. 100만 이하의 모든 소수(Link) 문제의 저작권은 SWEA에 있습니다 시간초과 날 것 같았지만 그래도 깡으로 구현했다가 역시나 시간초과를 맞이했던 문제.. 구현하는 규칙을 찾는게 아니라, 수학적인 규칙을 찾는게 포인트 숫자를 나열하고 꼭지점(가장 높아졌다가 내려오는 부분)을 기준으로, 문제의 규칙이 깨지는 순간까지의 올라가는 횟수(UP)과 내려가는 횟수(DOWN)을 곱하면 된다. 규칙이 깨지면 다시 UP/DOWN은 0으로 초기화. 다시 규칙(우뚝 선 산)의 조건을 찾는다. - 두번째 숫자부터 끝까지 탐색하면서, 이전의 숫자가 현재의 숫자보다 작다면 UP++ 그렇지 않다면 down++ 단, 구별해주기 위한 조건을 더 넣어서 down하다가 u..

    BOJ] 1003. 피보나치 함수

    BOJ]1003. 피보나치 함수 https://www.acmicpc.net/problem/1003 DP의 맛보기 문제정도이다. 단순히 피보나치의 결과를 구하는 문제가 아니다. 피보나치 함수가 호출되었을 때, 0과 1이 얼마나 반환(출력)되는지 구하는 문제이다. 규칙을 살펴보자. 예를 들어, fibo(n) : (0의 반환횟수, 1의 반환횟수) 라고 하자. fibo(0) : (1,0) fibo(1) : (0,1) fibo(2) : (1,1) -> fibo(0) + fibo(1) -> (1,0) + (0,1) fibo(3) : (1,2) -> fibo(1) + fibo(2) -> (0,1) + (1,1) fibo(4) : (2,3) -> fibo(2) + fibo(3) -> (1,1) + (1,2) 피보나치의..

    Algorithm] 다익스트라 알고리즘(Dijkstra Algorithm)

    다익스트라(Dijkstra) 알고리즘 다익스트라 알고리즘은 최단경로 알고리즘 중 하나이다. 최단경로 알고리즘의 종류만 짚고 넘어가보자. 최단경로? 간선의 가중치가 있는 그래프에서 두 정점 사이의 경로들 중에 간선의 가중치의 합이 최소인 경로 하나의 시작 정점에서 끝 정점까지의 최단 경로 다익스트라(Dijkstra) 알고리즘 -- 음의 가중치를 허용하지 않음. 벨만포드(Bellman-Ford) 알고리즘 -- 음의 가중치 허용 모든 정점들에 대한 최단 경로 플로이드-워샬(Floyd-Warshall) 알고리즘 다익스트라(Dijkstra)알고리즘 시작 정점에서 거리가 최소인 정점을 선택해 나가면서 최단 경로를 구하는 방식. 시작정점[s]에서 끝정점[t]까지의 최단경로에 정점 x가 존재한다. 이때, 최단경로는 s..