분류 전체보기
![[자료구조] 스택](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDQWLN%2FbtrJAqWqxTF%2FxsqOjIcgefQAiklejYAkX0%2Fimg.png)
[자료구조] 스택
스택 (Stack) 이란? - 마지막에 들어온 데이터가 먼저나가는 후입선출 자료구조 (LIFO) - 데이터가 입력된 순서의 역순으로 처리되어야 할 때 사용 스택의 연산 ● push() : 스택의 가장 윗부분에 추가한다. ● pop() : 스택에서 가장 윗부분에 있는 항목을 제거한다. ● peek() : 스택의 가장 위에 있는 항목을 출력 및 반환한다. ● isEmpty() : 스택이 비어 있을 경우, true를 반환한다. 위 메서드 뿐만 아니라, contains(), size(), empty()도 사용 가능하다. 스택의 구현 아래와 같은 과정으로 직접 push, pop, peek, contains 등 사용해보며 결과를 확인해 볼 수 있다. 스택의 경우, 괄호 짝을 검사하거나 후위표기법 연산에서 주로 활용..
![[자료구조] 연결리스트](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYZ8Ps%2FbtrJgxBD41E%2FLErPpSYNbRcQVFFncKWfzk%2Fimg.png)
[자료구조] 연결리스트
연결리스트 (LinkedList)란? - 데이터를 링크로 연결해서 관리하는 자료구조 - 기본 구조 : 노드 ( 값 + 포인터 ) - 자료의 순서는 정해져 있지만, 메모리 상 연속성이 보장되지는 않음 1. 데이터 공간을 미리 할당할 필요 없다. 2. 즉, 리스트의 길이가 가변적이라 데이터 추가/삭제가 용이하다. 1. 연결 구조를 위한 별도의 데이터 공간이 필요 -> 상대적 느림 2. 데이터 추가, 삭제 시 앞뒤 데이터의 연결을 재구성하는 작업 필요! [ 데이터 추가 ] 추가할 데이터를 담을 노드 생성 ↓ 링크 연결 작업 ↓ head 이전 작업 (제일 앞으로) [ 데이터 삭제 ] 삭제 대상 노드 지정 ↓ head 이전 작업 ↓ delete_node 삭제 ( 링크도 함께 삭제해주기 ) 유형1. 단순 연결 리스..
![[자료구조] 조합](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeGLVmv%2FbtrJgxfEkp5%2FpzgpkSlTc4ndE3cD64Bex1%2Fimg.png)
[자료구조] 조합
조합 (Combination)이란? - 순서 없고, 중복 허용하지 않음 - 서로 다른 n개 중에서 r개를 선택하는 경우의 수 - nCr // 조합 int n = 4; int r = 2; int pResult = 1; for (int i = n; i >= n - r + 1; i--) { pResult *= i; } int fResult = 1; for (int i = 1; i 1, 2, 3, 4 를 이용하여 세자리 자연수를 만드는 방법 (순서 X, 중복 x)의 각 결과를 출력하시오 순열과 마찬가지로, visited를 이용한 구현을 사용한다. (DFS) 해당 코드는 아래와 같다. public class Practice { void combination(int[] arr, boolean[] visited, i..

Java_int와 Integer의 차이
▶ Integer와 int의 차이를 알기 위해서는 우선 Java서는 원시타입 (Primitive Type), 래퍼 클래스 (Wrapper Class)가 있다. 원시타입과 래퍼클래스는 위처럼 나뉘어진다. 원시 타입으로는 byte, short, int, long, float, double, boolean, char 이 있고, 래퍼 클래스로는 Byte, Short, Integer, Long, Float, Double, Boolean, Character 가 있다. ▶ Primitive Type과 Wrapper Class는 무슨 차이가 있는걸까? Wrapper Class는 Primitive Type을 객체화한 것이다. ( wrap == 포장 ) public class Main { public static void..

Java_BufferedReader 예외처리 경우
BufferedReader는 입력 값을 바이트스트림에서 문자스트림으로 변환해주는 InputStreamReader와 입력 장치를 통해 값을 받아주는 System.in을 사용한다. 위 사진처럼 BufferedReader을 사용하는 과정에서 br.readLine()을 사용하니 에러가 나타났다. error : unreported exception IOException; must be caught or declared to be thrown show context Actions를 봐보니 아래와 같이 throws IOException을 해주거나 try-catch문을 통해 예외처리를 해줘야 에러가 발생하지 않는다고 되어 있다. 주로 값을 입력 받을 때 Scanner을 사용하는 편이었는데, 처리 속도 차이로 인해 Bu..
![[자료구조] 순열](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbCM8LX%2FbtrGXgturqT%2F2y0eqPFCIlpckpF0bnQolK%2Fimg.png)
[자료구조] 순열
순열 (Permutation) 이란? - 순서를 정해서 나열 - 서로 다른 n개 중에 r개를 선택하는 경우의 수 - 순서 존재, 중복 허용 X - nPr 순열에서는 { 1, 2, 3 }, { 1, 3, 2 }, { 2, 1, 3 } 등 모두 다른 경우의 수로 취급한다. 순서가 있는 열이기 때문이다. 아래 문제를 해결하는 방법은 2가지가 있다. 1, 2, 3, 4 를 이용하여 세자리 자연수를 만드는 방법 (순서 O, 중복 x)의 각 결과를 출력하시오 단순히 머리 속에서 생각하면 이해가 쉽지 않아 그림을 그려가며 직접 로직이 어떻게 진행되는지 따져보며 이해하는 것을 추천한다. 1. SWAP을 이용한 구현 아래 사진은 숫자 3개일 때, SWAP을 이용한 구현 방식을 나타내고 있다. sw..