분류 전체보기 62

[백준/Java] 2285번 - 우체국

문제 & 난이도그리디 알고리즘난이도 : 골드 4 풀이 📄내 알고리즘 풀이import java.io.*;import java.util.StringTokenizer;public class Beakjoon2285 { public static void main(String[] args) throws IOException { BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); //첫째 줄 : 마을의 수 N int N = Integer.parseInt(bf.readLine()); //배열 생성 int[][] town = new int[N+1][2]; //..

[백준/Java] 28278번 - 스택 2

문제 & 난이도스택 자료구조난이도 : 실버 4 풀이import java.util.ArrayDeque;import java.util.Deque;import java.util.Scanner;public class Beakjoon28278 { public static void main(String[] args) { //첫째 줄에 명령의 수 N이 주어진다. Scanner sc = new Scanner(System.in); int N = sc.nextInt(); //stack 구현 Deque stack = new ArrayDeque(); //둘째 줄부터 N개 줄에 명령이 하나씩 주어진다. for(int i=0; i  느낀..

[백준/Java] 2164번 - 카드2

문제 & 난이도 Queue 자료구조난이도 : 실버 4 풀이import java.util.LinkedList;import java.util.Queue;import java.util.Scanner;public class beakjoon2164 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); sc.nextLine(); Queue q = new LinkedList(); // 순서대로 들어있는 큐 생성 for(int i = 1; i   느낀 점 큐의 기초 개념(offer, poll)에 대해 다룰 수 있..

[알고리즘] 그리디(Greedy)

정의 미래를 고려하지 않고 현재 상황에서의 최적의 선택을 하는 방법 특징현재에 집중한 선택단순하고 빠름국소 최적  : 각 단계에서의 선택이 국소적으로 최선이 되는 것을 목표정렬 기법이 함께 사용되는 경우가 많다 : 큰/작은 경우 순, 긴/짧은 경우 순 등 극단적으로 문제에 접근하기 때문 코딩테스트 빈출 유형 & 풀이 방법 예시동전 거스름돈 문제 : 500,100,50,10원을 사용하여  거스름돈 n원을  최소 개수의 동전으로 거슬러줘야 하는 경우 ▶ 가장 큰 단위의 동전을 우선적으로 선택하는 방식회의실 배정 문제  : 여러 회의가 있을 때, 회의가 겹치지 않도록 하면서 가장 많은 회의를 배정하는 경우▶ 끝나는 시간이 가장 빠른 회의부터 선택하는 방식 유형 이해 코드import java.util.Scann..

[JAVA] catch-try문

정의 try-catch문 : 프로그램 실행 중 발생할 수 있는 예외 상황을 처리하기 위한 구문 장점안정성 향상 : 예외 발생 시 프로그램의 비정상 종료가 되지 않아 대처 가능디버깅 용이 : 문제 발생 지점 추적 가능사용자 경험 개선 : 오류 발생 시, 사용자에게 안내를 제공 구조 try { // 예외가 발생할 수 있는 코드} catch (ExceptionType1 e1) { // ExceptionType1 타입을 제외한 다른 타입의 예외를 처리하는 코드} catch (ExceptionType2 e2) { // ExceptionType2 타입을 제외한 다른 타입의 예외를 처리하는 코드} try 블록 : 예외 발생 가능성이 있는 코드 작성. 예외 발생시, 해당 예외를 처리할 수 있는 catc..

Language/JAVA 2024.09.14

[JAVA] BufferedReader

개요 자바를 이용해 푼 백준 문제 풀이를 검색해 보는데, 간단한 문제를 제외하고는 Scanner가 아닌 BufferReader기능을 이용하여 표준입력을 받는 것을 보고 Scanner보다 나은 어떠한 기능이 있는지 알아보기 위해 작성해 본다.  정의 BufferReader : 입력을 읽어주는 기능을 가지고 있는 클래스java.io의 하위에 정의되어 있는 클래스로, "import java.io.*"을 선언해야 사용이 가능하다. 기능 읽기 성능을 향상하기 위해 입력 스트림의 데이터를 버퍼에 임시로 저장해 둔다.  사용 이유 빠른 읽기 속도: 입력을 버퍼에 임시로 저장해 두는 기능이 있기에 파일 / 네트워크 등 큰 데이터를 읽을 때 성능이 좋다.다양한 메서드 : 편리한 메서드가 많이 구현되어 있다.read() ..

Language/JAVA 2024.09.14

[JAVA] throws IOException

개요 스터디 팀원의 코드 중 "public static void main(String[] args) throws IOException" 문장 사용의 이유가 궁금하여 이해해 보고자 글을 작성해 본다. 개념 예외(Exception)란? 프로그램이 실행되는 도중 예상치 못한 상황이 발생했을 때의 오류IOException이란 ? InputOutputException의 약자로, 입출력 작업 중 발생할 수 있는 오류를 뜻한다. 파일 읽기/쓰기, 네트워크 통신 등의 작업에서 발생 가능 사용 이유 간편함 : 예외를 메서드 내부에서 처리하지 않고 메서드를 호출한 곳에서 처리할 수 있다.중복 코드 방지가독성  throws IOException역할 : 메서드 선언부에 붙이는 구문으로, 해당 메서드가 입출력예외를 발생시킬 수..

Language/JAVA 2024.09.13

[자료구조] 큐(Queue)

📌큐 : 선입선출(First In First Out, FIFO)의 자료구조로, 가장 먼저 삽입된 데이터가 먼저 처리된다. 큐 구현 Java에서 큐는 주로 Queue 인터페이스를 사용하고, LinkedList / ArrayDeque / PriorityQueue 클래스를 사용해서 구현할 수 있다.Queue queue = new LinkedList();Queue queue = new ArrayDeque();  기본 메서드offer(E e) : 큐의 맨 뒤에 요소를 추가한다. 성공하면 true, 실패하면 false 반환poll() : 큐의 맨 앞에 있는 요소를 제거하고 반환한다. 큐가 비어있으면 null 반환peek() : 큐의 맨 앞에 있는 요소를 제거하지 않고 반환한다.큐가 비어있으면 null 반환isEm..

[자료구조] 스택(Stack)

📌스택 : 후입선출(Last In First Out, LIFO) 방식을 따르는 자료구조로, 가장 나중에 삽입된 데이터가 가장 먼저 꺼내지는 구조를 가지고 있다. 스택 구현 Deque를 스택처럼 사용Deque stack = new ArrayDeque();Stack 사용Stack stack = new Stack(); 기본 메서드push(E item) : 스택의 맨 위에 요소를 추가pop() : 스택의 맨 위에 있는 요소를 제거하고 반환peek() : 스택의 맨 위에 있는 요소를 제거하지 않고 반환isEmpty() : 스택이 비어 있는지 여부를 확인size() : 스택 안의 요소 개수 반환 코딩 테스트 빈출 유형 괄호 유효성 검사: "다양한 유형의 괄호 (), {}, [] 가 포함된 문자열에서 올바르게 괄호..