본문 바로가기

알고리즘/Class 324

백준 BOJ 6064번 - 카잉 달력 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main{ public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st; int num = Integer.parseInt(br.readLine()); for(int i = 0; i < num; i++) { st = new StringTokeni.. 2022. 9. 23.
백준 BOJ 5525번 - IOIOI 코드 import java.util.*; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int N = in.nextInt(); int M = in.nextInt(); char S[] = in.next().toCharArray(); int answer = 0, count = 0; for(int i = 1; i < M - 1; i++) { if(S[i] == 'O' && S[i + 1] == 'I'){ count++; if(count == N) { if(S[i - (N * 2 - 1)] == 'I') answer++; count--; } i++; } else count = 0; }.. 2022. 9. 5.
백준 BOJ 5430번 - AC 접근 방법 자료구조 덱 ( Deque )을 사용하는 문제다. Deque Deque 는 Double-Ended Queue의 약자로 말 그대로 끝이 두개인, 양쪽에서 데이터를 넣고 뺄 수 있는 양방향 큐다. 자바에서는 ArrayDeque를 이용해서 사용할 수 있다. 아래는 간단한 메소드들. deque.append(item): item을 덱의 오른쪽 끝에 삽입한다. deque.appendleft(item): item을 덱의 왼쪽 끝에 삽입한다. deque.pollFirst(): 덱의 왼쪽 끝 엘리먼트를 삭제하고 리턴한다. deque.pollLast(): 덱의 오른쪽 끝 엘리먼트를 삭제하고 리턴한다. deque.remove(item): item을 데크에서 찾아 삭제한다. 문제를 처음 풀 때는 배열을 뒤집기를 직.. 2022. 9. 4.
백준 BOJ 2667번 - 단지번호붙이기 접근 방법 이번 문제도 DFS, BFS 문제다. 1012번 유기농 배추와 유사한 문제다. 아예 똑같다고 봐도 무방할 정도다. https://edvedv.tistory.com/4?category=1038364 백준 BOJ 1012번 접근 방법 인접한 배추들을 그래프 형태로 생각하면, DFS와 BFS를 사용하여 문제를 풀 수 있다. DFS, BFS 둘다 그래프를 탐색하는 방법이다. 그래프란, 정점(node)과 그 정점을 연결하는 간선(edge)으로 edvedv.tistory.com 그래프 유형의 문제는 유독 다 비슷비슷한 경우가 많으니 DFS, BFS를 확실하게 알고 넘어가야겠다. 코드 import java.util.*; public class Main { static int[][] map; static b.. 2022. 8. 31.