2024/08 37

그림으로 보는 자바 코드의 메모리 영역(스택 & 힙)

자바의 메모리 영역이번 포스팅에선 자바(JAVA)를 사용하는 입장에서 알아야 할 메모리 구조 및 특징에 대해서 알아보려고 한다.자바 프로그램이 실행되면 JVM(자바 가상 머신)은 OS로부터 메모리를 할당받고, 그 메모리를 용도에 따라서 여러 영역으로 나누어 관리를 한다.JVM의 메모리 공간(Runtime Data Area)은 크게 Method(Static) 영역, Stack 영역, Heap 영역으로 구분되고 데이터 타입(자료형)에 따라 각 영역에 나눠서 할당 되게 된다. https://blog.naver.com/chlwlstjd10/222239136195  컴퓨터의 메모리는 사용할 수 있는 공간이 한정되어 있기 때문에 어떻게 관리하느냐에 따라서 프로그램의 성능(속도 등)이 좌우된다.그래서 메모리 설계가 ..

기술면접 준비 2024.08.06

항해99 리부트코스 알고리즘 3주 4일차 백준 31926 밤양갱

https://www.acmicpc.net/problem/31926 def min_time_to_create_song(n): # 초기값 설정 ans = 10 # n이 1일 때 기본적으로 필요한 시간 # 복사 가능한 크기의 기준점 cri = 1 while n >= cri * 2: ans += 1 cri *= 2 return ansdef main(): import sys input = sys.stdin.read n = int(input().strip()) result = min_time_to_create_song(n) print(result)if __name__ == "__main__": main() 달..

카테고리 없음 2024.08.01

항해99 리부트코스 알고리즘 3주 4일차 백준 2847 게임을 만든 동준이

https://www.acmicpc.net/problem/2847 def minimum_decreases(levels): decreases = 0 # 뒤에서 두 번째 요소부터 시작하여 앞쪽으로 탐색 for i in range(len(levels) - 2, -1, -1): if levels[i] >= levels[i + 1]: # 현재 레벨의 점수가 다음 레벨의 점수보다 크거나 같으면 감소시킴 decreases += (levels[i] - levels[i + 1] + 1) levels[i] = levels[i + 1] - 1 return decreasesdef main(): import sys ..

카테고리 없음 2024.08.01

항해99 리부트코스 알고리즘 3주 4일차 백준 14916 거스름돈

https://www.acmicpc.net/problem/14916 def min_coins(n): # 5원 동전을 최대한 많이 사용 count_5 = n // 5 # 남은 금액을 2원 동전으로 거슬러 줄 수 있는지 확인 while count_5 >= 0: remaining = n - (count_5 * 5) if remaining % 2 == 0: count_2 = remaining // 2 return count_5 + count_2 count_5 -= 1 return -1 # 거슬러 줄 수 없는 경우def main(): import sys input = sys.stdin..

카테고리 없음 2024.08.01

항해99 리부트코스 알고리즘 3주 3일차 백준 11722 가장 긴 감소하는 부분 수열

https://www.acmicpc.net/problem/11722 def longest_decreasing_subsequence(arr): n = len(arr) dp = [1] * n # 모든 원소를 1로 초기화 (각각 자기 자신만으로 수열을 이룸) for i in range(1, n): for j in range(0, i): if arr[j] > arr[i]: dp[i] = max(dp[i], dp[j] + 1) return max(dp)def main(): import sys input = sys.stdin.read data = input().split() n = int(data[..

카테고리 없음 2024.08.01