일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 임시반장 정하기
- 격자판
- 10991
- 모든행과열대각선의합
- 등수구하기
- 뒤집은 소수
- 투 포인터
- 아스키코드
- 알고리즘
- 인프런
- 점수계산
- 공통원소 구하기
- 배열
- GitHub #Commit #BaekJoon
- array
- Two Pointer
- 백준
- 가장 짧은 문자거리
- ArrayList
- 큰 수 출력하기
- 연속부분수열
- 최대 길이
- java
- 코테준비
- 누적 계산
- Pointer
- 자바
- 두 배열 합치기
- 보이는 학생
- 10992
- Today
- Total
목록Java (9)
ezhoon

스택 프레임이란 함수가 호출될 때, 그 함수만의 스택 영역을 구분하기 위해 생성되는 공간입니다. 지역변수, 매개변수가 저장되며, 함수 호출 시 할당되고 함수가 종료되면 소멸합니다. 구성요소 지역변수 매개변수 복귀 주소 메서드가 호출될 때마다 스택 프레임이 만들어지며, 메서드의 호출이 끝나면 자동으로 스택 프레임은 제거된다. 실습 예제 public class Main { public void DFS(int N) { if (N == 0) return; else { DFS(N - 1); System.out.print(N + " "); } } public static void main(String[] args) { Main T = new Main(); T.DFS(3); } } sout 위치만 바꿔주었을 뿐인데 ..

삽입 정렬이란 현재 비교하고자 하는 타깃과 그 이전의 배열들을 비교하며 자리를 교환하는 정렬 방법입니다. 특징 데이터를 비교하며 찾기 때문에 비교 정렬이며, 추가적인 공간을 필요로 하지 않기 때문에 제자리 정렬입니다. 사용법 현재 타깃이 되는 숫자와 이전 위치에 있는 숫자들을 순차적으로 비교한다. 타겟이 이전의 숫자보다 작은 경우 교환해준다. 1~2 반복해준다. public int[] solution(int N, int[] arr){ for (int i = 1; i = 0; j--) { if (arr[j] > temp) arr[j + 1] = ..

버블 정렬이란 두 개의 인접한 원소를 비교하여 정렬하는 방식입니다. 특징 데이터를 비교하면서 찾기 때문에 비교 정렬이며, 데이터 외의 추가적인 공간을 필요로 하지 않기 때문에 제자리 정렬이기도 합니다. 사용법 앞에서부터 현재 원소와 바로 다음의 원소를 비교 현재 원소가 다음 원소보다 크면 원소를 교환 다음 원소로 이동 한 뒤 해당 위치의 원소와 다음 원소를 비교 엔지니어 대한민국 - 버블 정렬 public int[] solution(int N, int[] arr) { for (int i = 1; i arr[j+1]) swap(arr, j, j + 1); } } return arr; } public vo..

선택정렬이란 현재 위치에 들어갈 데이터를 찾아 선택하는 알고리즘입니다. 데이터를 비교하면서 찾기 때문에 비교 정렬이라고도 불립니다. 특징 O(n2) 사용법 배열에서 최솟값을 찾는다 최솟값을 맨 앞자리의 값과 교환한다. 나머지 값들 중 최솟값을 찾아 위 1~2 과정을 반복한다. 그림으로 보자면 아래와 같습니다. 추가적으로 공부했던 유튜브 주소입니다. 엔지니어 대한민국) 선택정렬 구현하기 public class Selection_Sort { public int[] solution(int N, int[] arr) { for (int i = 0; i ..

Queue이란 Queue는 자료구조의 스택과 반대의 구조입니다. FIFO(First in First Out) 선입선출의 형태를 가지는 것을 Queue입니다. 특징 그래프의 넓이 우선 탐색(BFS)에 사용 front 부분은 삭제 연산만 수행한다. rear 부분은 삽입 연산만 수행한다. 컴퓨터 버퍼에서 주로 사용하며, Queue를 만들어 대기시킨 후 먼저 들어온 입력부터 처리한다. 사용법 선언구문 import java.util.Queue; 스택은 클래스로 구현하여 제공하지만, 큐는 인터페이스만 있고 별도의 클래스가 없다. 그러므로 큐 인터페이스를 구현한 클래스들을 사용해야 합니다. Stack과 항상 따라오는 개념이지만 구조가 다르다. Stack은 이전에 List 인터페이스에 포함되며, ArrayList를 상..

Stack이란 구조 중 하나인 Stack은 말 그대로 쌓다 라는 의미를 갖고 있는 자료 구조입니다. Stack의 가장 큰 특징은 LIFO(Last In First Out) 나중에 들어간 것이 먼저 나온다는 것입니다. 특징 정리 먼저 들어간 자료가 나중에 나온다 LIFO 구조 재귀적 함수를 호출 할 때 주로 사용 그래프의 깊이 우선 탐색(DFS)에서 사용 Stack 사용법 Stack 선언 구문 import java.util.Stack; Stack 값 추가 push("값") 메서드를 사용해서 Stack에 원하는 값을 추가합니다. public static void main(String[] args) { Stack intStack = new Stack(); // int형 Stack Stack stringStac..

Map 맵(Map)은 사전(dictinary)과 비슷하다고 볼 수 있습니다. people이 "사람" 뜻에 부합되듯이 Map은 Key와 Value라는 것을 한쌍으로 갖고 있습니다. Key Value people 사람 table tennis 탁구 HashMap 자바 개발자가 사용하는 Map 컬렉션 중에 가장 많이 사용되는 것을 뽑자면 HashMap이 될 것입니다. 그 이유 중 하나는 JDK 1.2부터 제공된 HashMap 클래스는 hash algorithmd을 사용하여 검색 속도가 매우 빠르기 때문입니다. Map 인터페이스를 구현하므로, 중복된 키로는 값을 저장 할 수 없지만, 같은 값을 다른 키로 저장하는 것은 가능합니다. put key와 value가 String 형태인 HashMap 생성 후 값을 입력 ..

Set 컬렉션 Set 컬렉션은 저장 순서가 유지되지 않습니다. 주로 객체의 중복을 제거할 때 사용합니다. Set 인터페이스를 구현한 클래스로는 HashSet, TreeSet, LinkedHashSet이 있습니다. 주요 특징 HashSet - 정렬을 해주지 않아 따로 정렬을 해줘야 한다. TreeSet - 오름차순으로 자동정렬이 된다. LinkedHashSet - 입력된 순서대로 데이터를 관리해준다. 표로 정리하면 아래와 같다. 클래스 특징 HashSet 정렬이 필요없는 데이터를 저장한다. Set 중에 가장 성능이 좋다. TreeSet 저장된 데이터 값에 따라 정렬된다 (오름차순) HashSet보다 느리다. LinkedHashSet 저장된 순서에따라 값이 정렬된다. 셋 중 가장 느리다. Set의 가장 큰 ..

EOF(End Of File) EOF는 End Of File의 약자로 데이터 소스로부터 더 이상 읽을 수 있는 데이터가 없음을 나타내는 용어입니다. 예시 문제로 백준 10951이 있습니다. EOF 사용법 BufferedReader를 주로 사용하니 이것을 예시로 하겠습니다. BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); String str; while ((str = br.readLine()) != null) { br.readLine()으로 입력값을 계속 읽어오되, 읽은 값이 만약 null 이면 반복문을 종료하는 방식입니다. 이러한 방식을 사용해서 항상..