728x90
반응형

언어 공부/JAVA_자바 11

[JAVA / 자바] Queue(큐) 클래스 사용법 및 함수(Method) 정리

Queue : 선입 선출(FIFO: First In First Out)의 성격을 지닌 자료구조 [자료구조] 큐(Queue)에 대한 설명글 [자료구조] 큐(Queue) 큐 (Queue) - 스택과 마찬가지로 삽입과 삭제의 위치가 제한된 유한 순서 리스트 - 선입선출 구조(FIFO, First-In-First-Out) : 삽입 순으로 나열되어 가장 먼저 삽입한 원소가 가장 먼저 삭제된다. 삭제 kwin0825.tistory.com 선언 import java.util.Queue; import java.util.LinkedList; Queue 변수명 = new LinkedList(); ㄴ 위 같은 경우는 자료형에 넣은 자료형만 삽입, 삭제 가능 Queue 변수명 = new LinkedList(); ㄴ 위 같은 ..

[JAVA / 자바] Stack(스택) 클래스 사용법 및 함수(Method) 정리

Stack : 후입 선출(LIFO: Last In First Out)의 성격을 지닌 자료구조이다. [자료구조] 스택 (Stack)에 대한 설명글 [자료구조] 스택 (Stack) 스택(stack) - 스택에 저장된 원소는 top으로 정한 곳만 접근이 가능하다. ㄴ 후입 선출 구조(LIFO, Last-In-First-Out) : 마지막에 삽입한 원소는 맨 위에 쌓여 있다가 가장 먼저 삭제된다. 스택의 연산 kwin0825.tistory.com 선언 import java.util.Stack; Stack 변수명 = new Stack(); ㄴ 위 같은 경우는 자료형에 넣은 자료형만 삽입, 삭제 가능 Stack 변수명 = new Stack(); ㄴ 위 같은 경우는 어떤 자료형이든 삽입, 삭제 가능(이전에 int형을..

[JAVA / 자바] TreeSet 클래스 사용법

TreeSet : Set자료형의 특징으로 중복을 허용하지 않으며, 정렬을 지원하는 클래스이다. : *레드-블랙 트리(Red-Black Tree)로 구현되어 있다. * 레드-블랙 트리(Red-Black Tree) : 편향 이진트리의 단점을 보완하기 위한 트리로, 데이터의 삽입/삭제 시 좌우 균형을 맞춰주는 트리 선언 import java.util.TreeSet; import java.util.Collections; // TreeSet 변수명 = new TreeSet (); 정렬 1. 오름차순 TreeSet 변수명 = new TreeSet(); 2. 내림차순 TreeSet 변수명 = new TreeSet(Collections.reverseOrder()); 3. 사용자 정의 TreeSet 변수명 = new T..

[JAVA / 자바] 비트 마스킹(Bit Mask), BitSet자료형

비트 마스킹 / 비트 마스크 (BitMasking / BitMask) : 정수의 이진수 표현을 사용하는 기법 장점 1. 연산 시간이 빠름 - 비트 마스킹은 bit연산이므로 거의 모든 연산이 O(1)의 시간 복잡도를 갖고 있다. 따라서 다른 연산자를 이용한 연산보다 연산 시간이 빠르다. 2. 코드가 짧음 - 다양한 집합 연산을 비트 연산자를 이용하여 한 줄로 작성이 가능하다. 3. 메모리 사용량이 적다 - 데이터를 미리 계산하여 저장 가능하고, boolean 자료형의 경우 1byte(= 8bit)의 메모리가 필요한 반면, 비트로 저장하면 1bit만 사용한다. => 동적 계산법 (DP : Dynamic Programming)에 유리 비트 연산자 비트 연산자 논리 의미 & AND 양쪽 비트가 모두 1인 경우에..

[JAVA / 자바] Priority Queue(우선순위 큐) 클래스 사용법 및 함수(Method) 정리

Priority Queue : 삽입되는 순서와 관계없이 큐에 저장된 원소들 중 우선순위가 높은 순으로 삭제되는 자료구조 [자료구조] 큐(Queue)에 대한 설명 글 [자료구조] 큐(Queue) 큐 (Queue) - 스택과 마찬가지로 삽입과 삭제의 위치가 제한된 유한 순서 리스트 - 선입선출 구조(FIFO, First-In-First-Out) : 삽입 순으로 나열되어 가장 먼저 삽입한 원소가 가장 먼저 삭제된다. 삭제 kwin0825.tistory.com 선언 import java.util.PriorityQueue; import java.util.Collections; // 정렬에 필요한 경우 PriorityQueue 변수명 = new PriorityQueue(); ㄴ 에 넣은 자료형만 삽입, 삭제 가능 ..

[JAVA / 자바] ArrayList vs HashSet

이번 포스팅은 ArrayList와 HashSet을 어떤 상황에 사용하면 좋을 지에 대해 말해보려 한다. 이전에 성능과 상관없이 코드를 작성할 때는 굳이 HashSet은 사용하지 않았다. 왜냐면 정렬도 되지 않고 순서를 보장해주지 않기 때문이다. 그러나, 알고리즘 문제를 풀면서 HashSet을 다시 보게 되었고 그래서 두 자료형에 대해 장단점을 비교하여 어떤 상황에서 어떤 선택이 좋은 선택이 될지 알아보겠다. 성질 List는 중복을 허용, 순서를 보장 Set은 중복을 허용하지 않음, 순서를 보장하지 않음 위 성질을 바탕으로 우린 다음 두 가지를 비교해 볼 수 있다. 1. 중복의 허용 2. 순서의 보장 그렇다면 순서가 상관없으면서 중복 없이 저장하고 싶을 때만 Set자료형을 사용해주면 되는 것이 아닌가?라고..

[JAVA / 자바] 자바 제어문

조건문 - if 명령문 : 조건식을 검사하여 그 결괏값이 참(true)이면 명령문 수행, 거짓(false)이면 명령문을 수행하지 않고 건너뜀 if(조건식){ 명령문; ... } else if(조건식){ 명령문; ... } else{ 명령문; ... } - switch 명령문 : if-else 구조를 여러 번 반복하는 다중 조건문, 식을 계산하여 구한 값과 일치하는 case문을 찾아서 해당 명령문을 수행하고, break 명령을 만나면 switch 명령문을 빠져나감(break 명령을 만날 때까지 하위 케이스 명령문도 수행함) switch(식) { case 값: 명령문; break; case 값: 명령문; case 값: 명령문; break; default: 명령문; } 반복문 : 같은 명령문을 여러 번 반복 ..

[JAVA / 자바] 자바의 데이터 타입

변수 (Variable) - 어떤 값을 저장하는 공간 - 사용할 변수 선언(변수에 저장할 값의 타입, 즉 데이터 타입을 함께 선언) 기본 타입(primitive type) : 키워드로 정의된 8개의 기본 데이터 타입 - 정의된 형태의 값을 변수에 저장하기 위한 데이터 타입(문자 데이터 저장 시 유니코드 값 사용) - 데이터 타입을 사용하여 변수를 선언하면, 해당 타입에 따라 정해진 메모리 크기가 변수에 할당 구분 기본 타입 메모리 크기 (byte: 바이트) 정수타입 byte 1 short 2 int 4 long 8 char 2 부동 소수점 타입 float 4 double 8 불리언 타입 boolean - 참조 타입(reference type) - 참조값(reference value)을 다루기 위한 데이터..

[JAVA / 자바] 자바 프로그래밍

자바 프로그램의 구조 public class Main{ // 클래스 시작 public static void main(String args[]){ // 메소드 시작 //메소드 본체 시작 System.out.println("Hello, World."); // 명령문 //메소드 본체 끝 } // 메소드 끝 } // 클래스 끝 ex) 클래스 이름: Main 메서드 이름: main 클래스 - 자바 프로그램을 구성하는 단위 - 클래스 이름과 본체로 구성 - 본체에 한 개 이상의 메서드 포함 메서드 - 수행할 명령문의 묶음 - 메서드 이름과 본체로 구성 - 본체에 한 개 이상의 명령문 포함 - main 메소드 > 자바 프로그램의 실행 시작 지점 프로그램 실행 과정 컴파일러의 작업: 소스파일을 컴퓨터가 실행할 수 있는..

[JAVA / 자바] Scanner와 BufferedReader / System.out.print와 BufferWriter의 차이

여러분들은 Scanner함수와 System.out.print함수를 아마도 즐겨 쓰고 있을 것입니다. 왜냐면 입출력 시에 이 두 함수가 사용하기도 편리하고 쉽기 때문이죠, 하지만 나중에 시간 초과에 걸릴 위험이 큰 함수들이 바로 Scanner와 System.out.print함수입니다. 그렇다면 시간 초과에 걸리지 않을 방법은 무엇일까요? 바로, BufferReader함수와 BufferWriter함수가 해법이 될 수 있습니다. 왜 그럴까요? Scanner 1. 입력을 받으면 이것이 어떠한 형의 단어인지 구분하여 분석을 한다.(int, String 등,,,) 2. 입력값의 경계로 공백, 엔터 모두 인식이 가능하다. 3. 사용하는 버퍼의 사이즈는 1024 chars이다. 4. 문자열 파싱이 가능하다. 5. IO..

728x90
반응형