[JAVA] 백준 24513 좀비 바이러스
2022. 3. 11. 01:30
알고리즘/백준 BOJ
24513번: 좀비 바이러스 여기 $N$ x $M$ 격자 모양의 마을이 있다. 어느 날 세상에 좀비 바이러스가 창궐하여 바이러스가 빠르게 퍼져나가버린다. 바이러스에 대해 조사한 결과 세 종류의 바이러스가 존재했으며 각각 $1$ www.acmicpc.net 풀이 방법 bfs가 한턴씩 지날 때마다 몇번째 방문인지 저장하기 위해 copy 배열을 만들었다. 처음은 첫번째 방문으로 가정해 1을 넣어주었다. 이렇게 턴을 돌 때마다 copy에 현재 몇번째 턴인지 저장해두었다. 만약 map[nx][ny]를 방문했을 때 copy[nx][ny]에 저장된 값과 현재 턴수가 같고, map[nx][ny]와 map[x][y]이 다르면 침범이 일어났다는 뜻이므로 map[nx][ny] 값을 3으로 바꿔주었다. 자바 코드 import..
[JAVA] JVM 메모리 구조와 가비지 컬렉션 #2
2022. 1. 23. 18:57
Computer Science/JAVA
이번에는 Heap의 구조와 가비지 컬렉터에 대해 알아보자. Heap의 구조 Heap은 객체를 저장하는 가상 메모리 공간이다. '객체는 대부분 일회성이며, 메모리에 오랫동안 남아있는 경우는 드물다' 라는 전제로 객체의 생존 기간에 따라 Heap의 영역을 나누었다. Heap에는 원래 3가지 영역이 있는데, 1. New/Young Generation 2. Old Generation 3. Permanent Generation 이 세가지 중 Permanent Generation은 JAVA 8부터 삭제된 영역이다. Heap - Permanent Generation 생성된 객체들의 정보의 주소값이 저장된 공간이다. Class Loader에 의해 로드되는 클래스, 메서드에 대한 메타 정보가 저장된다. 앞서 말했다싶이 ..
[JAVA] JVM 메모리 구조와 가비지 컬렉션 #1
2022. 1. 16. 19:30
Computer Science/JAVA
면접때 자주 나오는 질문 하나인 JVM 메모리 구조와 가비지 컬렉선에 대해 알아보도록 하자! 우선 JVM의 메모리 구조를 설명하기 위해서는 JVM이 무엇인지 알아야 하고, 자바의 3대 구성요소에 대해 알아야 한다. 자바의 3대 구성 요소 - JDK(Java Development Kit): JRE에서 제공하는 실행 환경과 자바 개발에 필요한 여러가지 명령어와 컴파일러를 포함하는 소프트웨어 - JRE(Java Runtime Enviroment): 자바 소프트웨어를 실행하기 위한 소프트웨어. 클래스 라이브러리, 로더 클래스, JVM을 포함한다. - JVM(Java Virtual Machine): 자바 바이트 코드를 해석하고 실행하는 가상 머신 자바 바이트 코드란? 사용자 언어인 자바와 기계어 사이의 중간 언어..
[Web] REST vs RESTful vs REST API(RESTful API)
2021. 12. 31. 00:49
Computer Science/Web programming
REST REpresentational State Transfer 네트워크 상에서 client와 server 사이의 통신 방식 중 하나이다. URI와 HTTP를 이용한 통신 목적의 아키텍처 스타일 아키텍처? (제약조건을 모두 만족하는 시스템) 아키텍처 스타일이므로 아키텍처 제작 시 사용되는 가이드의 의미로 사용되며 명확히 준수해야 하는 표준은 없다! 여기서 REST는 URI와 HTTP를 이용한 통신 목적의 아키텍처 스타일이라고 했는데, 평소에 URI과 URL의 차이를 헷갈리고 있었기 때문에 한번 짚고 넘어가려고 한다! 💡 URI와 URL의 차이점? URI : 특정 리소스를 식별하는 통합 자원 식별자를 의미. 웹 기술에서 사용하는 논리적 또는 물리적 리소스를 식별하는 고유한 문자열 시퀀스 URL : 흔히 ..