입력 수의 범위가 long을 넘을 것 같아서 한 자리씩 더해주는 식으로 짰는데 bigdecimal을 쓰면 그냥 덧셈만 해주면 된다.
N 개의 수를 오름차순 정렬하고 왼쪽으로 필요한 좌석 수(cur - bc) + 1(현재 내가 앉을 좌석) + 오른쪽으로 필요한 좌석 수(cur)로 필요한 전체 좌석수의 최솟값을 구해줄 수 있다.cur -> N 개의 수를 순회할 때 현재의 Ai 값bc -> 현재 내 왼쪽
모든 문서 제목을 소문자로 변경하고 첫 글자를 기록 해둔 다음 전체 알파벳을 순회하면서 사용할 수 있는 문제 제목의 개수를 구해주면 된다.
많은 개수의 빵을 사면 되기 때문에 두 개의 빵 중 가격이 저렴한 빵을 우선적으로 많이 사고 남은 돈으로 다른 빵을 사도록 하면 된다.
완전 이진 트리이기 때문에 항상 가운데 인덱스가 루트 노드라는 게 보장된다.재귀 호출로 루트를 노드를 계속 구해 가는 식으로 이진 트리를 재구성할 수 있다.
prefix sum을 계산해서 연속 합을 구하는식으로 짰다. 적절하게 break를 해주지 않으면 시간초과가 나온다.
커널이 생성해주는게 아닌 라이브러리를 이용해서 생성한 스레드를 뜻한다.커널에는 '커널모드'와 '사용자모드' 두 가지가 있고, '사용자 모드'에서 동작하는 스레드가 User Level Thread이다.입출력 인터럽트가 발생하면 커널은 '사용자 모드'가 되어 User Le
java에서는 개발자가 직접 메모리 관리를 하지 않고 jvm의 Garbage Collector가 프로그램에서 접근하지 않는 메모리를 정리해 준다.그럼 GC는 어떤 과정으로 이뤄지는 것일까?JVM 내의 모든 object들을 확인해서 reachable object를 mar
아래 글에서 설명하는 프로세스는 스레드가 될수도 있습니다.멀티 프로세싱 환경에서 현재 실행중인 프로세스가 실행이 중지되고 CPU가 다른 프로세스에게 넘어갈 때 이전에 실행 중이었던 프로세스의 컨텍스트 정보를 레지스터에서 PCB로 백업하고 새로 실행될 프로세스의 컨텍스트
각 단어마다 포함하는 알파벳을 alphabet배열에 저장해둠1~N개의 단어의 조합을 구하는데 해당 조합이 모든 소문자 알파벳을 포함하는지 확인하고 포함한다면 count증가
멀티 스레딩 환경에서는 전역변수, 힙 영역 등 스레드들끼리 공유되는 자원이 존재합니다.이런 공유 자원들에 접근하는 코드 영역을임계영역 이라고 합니다. 임계영역은 상호배제(각 스레드는 공유 자원의 손상을 방지하기 위해 배타적으로(독점적으로) 공유 자원을 사용해야함) 되어