[Java] 알고리즘 Day3
·
알고리즘
그리디 알고리즘(Greedy)- 탐욕법- 현재 상황에서 지금 당장 좋은 것만 고르는 방법- 매 순간 가장 좋아 보이는 것을 선택하며, 나중에 미칠 영향에 대해서는 고려하지 않는다.그리디에서 중요한 것은- 창의력 -> 문제를 풀기위한 아이디어를 떠올릴 것 -> 정당한지 검토할 수 있어야할 - 특정 문제를 만났을 때, 단순히 현재 상황에서 가장 좋아 보이는 것만을 선택해도 문제를 풀 수 있는지를 파악할 수 있어야함  그리디 알고리즘 주요 속성1. 탐욕적 선택 속성 (Greedy Choice Property):각 단계에서 탐욕적으로 선택한 것이 항상 최적이라는 것을 보장합니다.즉, 각 선택 시점에서 지금 당장 최적인 선택을 하며, 그 선택이 최종적으로 최적해로 이어질 수 있어야 합니다. 2. 최적 부분 구조 ..
[Java] 알고리즘 Day2
·
알고리즘
1. 델타 delta- 상하좌우를 이동하는 기법static int dy[] = { -1, 1, 0, 0};static int dx[] = { 0, 0, -1, 1};주의할 점상하좌우 이동하면서 배열의 인덱스 값 범위에서 벗어나는지 검사델타 활용 예시static void print(int y, int x) { for (int d = 0; d = 5 || nx >= 5 ) break; //인덱스 범위 검사 System.out.print(map[ny][nx]); } } System.out.println();} - dx, dy를 조절하여 대각선 이동도 가능static int dy[] = { -1,-1, 1, 1};static int dx[] = { -1, 1, -1, 1}; - 8방향 이동stati..
[Java] 알고리즘 Day1
·
알고리즘
자바 입력1. 개요일반적으로 자바에서는 Scanner를 사용하여 입력을 받습니다.하지만 Scanner는 입력을 처리할 때 상대적으로 느립니다.특히 많은 양의 입력을 처리해야 하는 경우, BufferedReader에 비해 성능이 떨어집니다.따라서 코딩테스트에서 주로 사용되는 방법은 BufferedReader와 InputStreamReader입니다.2. 자바의 입력 클래스BufferedReader & InputStreamReaderBufferedReader br = new BufferedReader(new InputStreamReader(System.in));String str = br.readLine();System.in -> 표준 입력 스트림으로, 사용자가 콘솔에 입력하는 바이트 데이터를 읽습니다.Inp..