본문 바로가기

Study

[java] 큐 활용 문제풀이 백준 4949번 균형잡힌 세상 균형잡힌 세상 성공다국어한국어   시간 제한메모리 제한제출정답맞힌 사람정답 비율1 초128 MB160965551474247932.944%문제세계는 균형이 잘 잡혀있어야 한다. 양과 음, 빛과 어둠 그리고 왼쪽 괄호와 오른쪽 괄호처럼 말이다.정민이의 임무는 어떤 문자열이 주어졌을 때, 괄호들의 균형이 잘 맞춰져 있는지 판단하는 프로그램을 짜는 것이다.문자열에 포함되는 괄호는 소괄호("()") 와 대괄호("[]")로 2종류이고, 문자열이 균형을 이루는 조건은 아래와 같다.모든 왼쪽 소괄호("(")는 오른쪽 소괄호(")")와만 짝을 이뤄야 한다.모든 왼쪽 대괄호("[")는 오른쪽 대괄호("]")와만 짝을 이뤄야 한다.모든 오른쪽 괄호들은 자신과 짝을 이룰 수 있는 왼쪽 괄호가 존재한다.모든 괄호들의 짝은 1:.. 더보기
[java] 큐 활용 문제풀이 백준 26043번 식당메뉴 큐를 이용해 들어온 수를 이용해 출력해주는 문제입니다.1. switch를 이용해 유형에 따라 처리해 주었습니다. 1-1. 1유형이 들어온다면 학생의 번호와 원하는 메뉴를 배열로 만들어 큐에 저장했습니다. 1-2. 2유형이 들어온다면 큐에서 poll()을 이용해 원하는 메뉴를 먹었다면 A에 못 먹었다면 B에 저장을 해주엇습니다.while (n-- > 0) { st = new StringTokenizer(br.readLine()); type = Integer.parseInt(st.nextToken()); // 유형 switch (type) { case 1: a = Integer.parseInt(st.nextToken()); // 학생의 번호 b = Integer.. 더보기
[JAVA 스터디] Queue 개념 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 과 Queue Stack은 LIFO(Last In First Out) 구조로 되어 있으며, 쉽게 해석하면 "후입 선출" 입니다.즉, 마지막(최근)에 넣은 것을 먼저 뺀다는 말이죠. Queue는 FIFO(First IN First Out) 구조로, Stack과 반대로 "선입 선출" 입니다.아르바이트하면서 냉장고에 재고 채워넣을 때 선입선출이란말 자주 들어보셨죠 ?즉, 먼저 넣은 것(오래된 것)을 먼저 뺀다는 말입니다.  스택(Stack)과 큐(Queue) 비교 코드import java.util.Stack;import java.util.LinkedList;import java.util.Queue;class StackQueueEx {public static void main(String[] args) {Stack st = .. 더보기
[JAVA 스터디] Stack 개념과 사용법 Stack이란?"스택을 쌓는다" 라는 표현을 실생활에서도 간간히 사용하기 때문에,큐와는 다르게 그나마 기억하기가 편한 것 같습니다.자료구조의 일종으로서 큐(Queue)와는 다르게 후입선출의 형식입니다. - LIFO(Last In First Out)나중에 들어오는 값이 가장 먼저 나가는 것으로,큐와는 다르게 Index의 개념이 존재합니다.큐보다 실생활에 적용, 비유되는 부분이 많습니다.쓰레기통...바구니...벽돌쌓기...등등깊이우선탐색(DFS)에서 사용되기도 하며, 재귀함수에도 많이 사용됩니다.   Stack stack = new Stack();Stack 변수명 = new Stack();큐와는 달리 Stack만을 Import하여 사용합니다.⚙️ Stack에 값을 추가하는 방법(add와 push의 차이점)s.. 더보기
[JAVA 스터디] Map getOrDefault 사용법 getOrDefault-  찾는 키가 존재한다면 찾는 키의 값을 반환하고 없다면 기본 값을 반환하는 메서드 사용 방법getOrDefault(Object key, V DefaultValue)매개 변수 : 이 메서드는 두 개의 매개 변수를 허용합니다.key : 값을 가져와야 하는 요소의 키입니다.defaultValue : 지정된 키로 매핑된 값이 없는 경우 반환되어야 하는 기본값입니다.반환 값 : 찾는 key가 존재하면 해당 key에 매핑되어 있는 값을 반환하고, 그렇지 않으면 디폴트 값이 반환됩니다.다음은 getOrDefault 메서드의 사용법입니다. import java.util.HashMap;public class MapGetOrDefaultEx { public static void main(Strin.. 더보기
[JAVA 스터디] BufferedReader / BufferedWriter BufferedReader / BufferedWriterBufferedReader와 BufferdWriter는 버퍼를 사용하여 읽기와 쓰기를 하는 함수이다. 버퍼를 사용하지 않는 입력은, 키보드의 입력이 키를 누르는 즉시 바로 프로그램에 전달된다.반면 버퍼를 사용하는 입력은, 키보드의 입력이 있을 때마다 한 문자씩 버퍼로 전송한다. 버퍼가 가득 차거나 혹은 개행 문자가 나타나면 버퍼의 내용을 한 번에 프로그램에 전달한다. 한번 버퍼를 거쳐 출력되는 것보다, 키보드의 입력을 받는 즉시 출력하는 것이 더 빠른 것이 아닌가 생각할수 있다.하드디스크는 속도가 느리다. 그리고 외부 장치(키보드, 모니터 등)와 데이터 입출력도 생각보다 시간이 오래 걸린다. 그렇기 때문에 키보드의 입력이 있을 때마다 바로 이동시키는.. 더보기
[JAVA 스터디] 250122 Map 객체 활용 - 오늘의 학습 키워드Map 객체 활용  1. put(K key, V value)키와 값을 맵에 저장 한다.키가 존재하면 새값으로 대체된다.Map map = new HashMap();map.put("apple", 50);map.put("banana", 30); 2.get(Object key)지정된 키에 대응하는 값을 반환하다. 키가 없으면 null을 반환int price = map.get("apple"); // 50 3.remove(Object key)키와 그에 대응하는 값을 제거map.remove("banana"); 4.cotainsKey(Object key)Map에  지정된 키가 존재하는지 여부를 반환boolean hasApple = map.containsKey("apple"); // true 5.c.. 더보기
[JAVA 스터디] 250121 해시 알고리즘 - 오늘의 학습 키워드해시 알고리즘  자바는 다른 프로그래밍 언어와는 다르게 Hash를 자주 사용합니다.그러면 어느 부분에서 사용되는지 한 번 알아보겠습니다!!Hash?해시 함수(hash function) 또는 해시 알고리즘(hash algorithm) 또는 해시함수알고리즘(hash函數algorithm)은 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수이다. 해시 함수에 의해 얻어지는 값은 해시 값, 해시 코드, 해시 체크섬 또는 간단하게 해시라고 한다해시란 보통 입력값을 임의의 고정된 길이의 데이터로 바꿔주는 함수입니다.위 그림과 같이 key 값으로 이름이 들어왔다면 이를 고정된 길이의 문자열/정수 등으로 바꿔주는 역할을 수행하는 함수입니다.보통 key 값을 임의의 데이터로 변경하는 과정을.. 더보기
[JAVA 스터디] 250120 hash 함수 - 오늘의 학습 키워드해시 함수   해시는 저장 또는 검색 등에서 자주 활용되는 자료구조입니다. 정확하게는 특정한 함수(알고리즘)를 통해서 값을 추출하고 활용하는 것인데요. 함수(알고리즘)를 어떻게 구현하는지에 따라 사용 용도와 성능이 달라집니다.이러한 해시는 더 나아가서 암호, 블록체인, 메시지 인증 코드 등에서도 활용됩니다.해시(Hash)해시(Hash)는 입력 데이터를 고정된 길이의 데이터로 변환된 값을 말합니다. 다른 말로는 '해시 값(Hash value), 해시 코드, 체크섬' 이라고도 합니다. 이러한 해시는 뒤에서 알아볼 '해시 함수'에 의해서 얻게 됩니다. 간단하게 말하자면, 데이터의 KEY 값이 해시 함수를 통해서 변환된 간단한 정수입니다. 이렇게 정수로 변환된 해시는 배열의 인덱스, 위치,.. 더보기