분류 전체보기

Algorithm

[Java] Baekjoon 10815번 (이분/이진 탐색)

10815번 문제는 첫째 줄에 N 두번째 줄에 N개의 수(-10,000,000보다 크거나 같고 10,000,000보다 작거나 같은) 세번째 줄에 M 네번째 줄에 M개의 수(-10,000,000보다 크거나 같고 10,000,000보다 작거나 같은) 가 입력으로 주어지고 M의 원소가 주어진 N개의 수 중 값이 있으면 1 없으면 0을 찍어 내는 문제이다. 다음 문제를 반복문 for를 사용하여 풀면 시간이 초과된다. 따라서 이분/이진 탐색법을 사용하여야 한다. 1. 이분/이진 탐색(Binary Search)란? 이진 탐색은 배열이 정렬(오름차순 기준)되어있다는 전제하에 사용 가능하다. 이진 탐색은 반복할때마다 탐색의 범위를 반으로 줄인다. 순서는 다음과 같다. 배열의 처음과 끝을 기준으로 중간 index를 구한..

Algorithm

[Java] baekjoon 2750번(Bubble Sort)

백준 2750번은 단순한 내림차순 정렬 문제이다. 하지만 문제의 의도가 java의 Arrays.sort 메서드를 이용해 푸는것은 아닌것 같아 찾아 보던중 Bubble Sort 방법에 대해 알아보았습니다. 1. Bubble Sort란? 가장 기본적인 정렬방식이므로 이해하기도 어렵지 않다. Bubble Sort는 데이터를 '비교'하면서 정렬하기 때문에 '비교 정렬'이다. 정렬의 대상이되는 배열 이외의 추가적인 공간이 필요하지 않기 때문에 '제자리 정렬(in-place-sort)'이다. (정확히는 데이터를 서로 교환하는 과정(swap)에서 임시 변수를 필요로 하나, 이는 충분히 무시할 만큼 적은 양이기 때문에 제자리 정렬로 본다) 2. Bubble Sort의 정렬 방법 bubble sort의 정렬 방법은 순서..

Java/기초

[Java] JVM메모리와 메서드 호출

JVM(Java Virtual Machine)이 OS로 부터 메모리를 할당 받아 .class파일(byte code)를 실행시킬때에 메모리에 대해 알아보겠습니다. ①②③④⑤⑥⑦⑧⑨⑩⑪⑫ 1. JVM 메모리 구조 JVM은 다음과 같은 메모리 구조를 가지고 있습니다. 오늘은 .class파일을 실행 시켰을떄 간단한 예제와 함께 JVM의 메모리에 메서드가 올라가고 제거되는 과정을 살펴보겠습니다. 따라서 위 그림의 빨간색 영역에 대해서만 다루겠습니다. 2. JVM Runtime Data Area(Memory Area) 구조 JVM은 Runtime에 Data를 올려놓는 영역인 Runtime Data Area를 가지고 있습니다. 이 영역은 크게 5가지로 나뉘지만, 위 그림 이외의 두 영역은 Low Level 의 Ope..

Java/기초

[Java] 비트 연산자(Bitwise Operator)

1. 비트 연산자란? 비트 연산(bitwise operation)은 한 개 혹은 두 개의 이진수에 대해 비트 단위로 적용되는 연산입니다 처음 비트 연산을 접하게 되면 "곱셈, 나눗셈을 사용하면 되지 이걸 왜 사용하나?"라는 의문이 들 수 있겠지만 비트연산은 곱셈, 나눗셈 연산자보다 실행속도가 빠르고 메모리 사용량이 적어 실무에서 자주 사용된다고 합니다. 그리고 이미지 및 영상처리에도 사용된다고 합니다. 2. 비트연산자(&, |, ^, ~) & (AND 연산자) - 피연산자의 양쪽 비트값이 모두 1이여야만 1을 결과로 얻는다. 그 외에는 0을 얻는다. | (OR 연산자)- 피연산자의 비트값 중 한쪽의 값만 1이여도 1을 결과로 얻는다. 모두 0일 경우 0을 얻는다. ^(XOR 연산자) - 피연산자의 비트값..

chobo5
'분류 전체보기' 카테고리의 글 목록 (2 Page)