알고리즘/백준 문제 풀이(43)
-
[BOJ] 1013. Contact
https://www.acmicpc.net/problem/1013 접근 방법 정규식만 잘 안다면 풀 수 있는 문제이다. 정규식에 모르거나 연습할 문제로 충분하다. Need Know 정규식 전체 코드 ( Java ) import java.io.*; class Main { static int N; static StringBuilder sb = new StringBuilder(); static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); public static void mai..
2021.09.25 -
[BOJ] 1107. 리모콘
https://www.acmicpc.net/problem/1107 접근 방법 ( 먼저 좋지 않은 코드라 생각한다.. ) → 더 짧은 시간안에 풀을 수 있다.. 일단 생각해낸 방법은 채널은 500,000이 최고이므로 최대를 1,000,000으로 잡고 for문을 지나면서 채널을 틀 수 있는지 보았다. // 채널을 틀 수 있는지에 대한 함수 static boolean check(String str){ for(int i=0; i temp){ answer = temp; } if(answer == 0){ System.out.println(0); return; } 주의 사항 Need Know 완전 탐색 전체 코드 ( Java ) import java.io.*; import java.util.ArrayList; imp..
2021.09.25 -
[BOJ] 2174. 로봇 시뮬레이션
https://www.acmicpc.net/problem/2174 접근 방법 먼저 로봇의 index를 꺼냈을 때 로봇의 정보가 담아져있으면 되기 때문에 자료구조형은 HashMap 을 가져갔다. 또한 좌표에 로봇이 있는지 없는지에 대한 정보와 좌표에 어떤 로봇이 있는지에 대해 2차 행렬로 표시하였다. static HashMap hashMap = new HashMap(); static int[][] map; // index값이 들어오게 된다. ... class Robot{ int direction, x, y; public Robot(int direction, int x, int y) { this.direction = direction; this.x = x; this.y = y; } } 주의 사항 가로는 A,..
2021.09.19 -
[BOJ] 10800. 컬러볼
https://www.acmicpc.net/problem/10800 접근 방법 class Ball implements Comparable{ int index, color, size; public Ball(int index, int color, int size) { this.index = index; this.color = color; this.size = size; } @Override public int compareTo(Ball o) { return size-o.size; } } // 자료구조형은 이렇게 가져간다. 공을 크기 순으로 정렬을 먼저하였다. 이제 문제는 같은 색깔에 대한 구슬의 크기는 잡아먹지 않아야한다. 그러기 위해서는 (누적값 - 같은색깔의 누적값) 을 해주면 된다. int[] answ..
2021.09.18 -
[BOJ] 20056. 마법사 상어와 파이어볼
https://www.acmicpc.net/problem/20056 접근 방법 구현 문제는 대부분 데이터를 어떻게 저장하는지에 따라 풀이가 달라진다. (제일 중요) 격자의 맵에서 데이터를 어떻게 담아줘야 할 지 생각을 했고 파이어볼2차 배열을 생각하였다. LinkedList[][] map = new LinkedList[N][N]; // 이렇게 할 경우 x,y에 대해 Fire 정보를 모두 가져올수 있기 때문이다. 또한, move를 해주게 될 때 map은 새로운 map이 되기 때문에 move를 해준 후 다시 추가를 해줘야한다. static void move(){ List next[][] = new LinkedList[N][N]; for(int i = 0; i < N; i++) { for (int k = 0;..
2021.09.18 -
[BOJ] 1182. 부분수열의 합
https://www.acmicpc.net/problem/1182 접근 방법 처음에 코드를 순차적으로 합이 되는 경우만 생각을 해보았다. 하지만 예제에 { 2 0 } { 0 , 0 } 이라면 답은 3이 된다는 사실을 알게 되어 백트래킹을 사용해서 코드를 다시 짜게 되었다. 주의 사항 Need Know BackTracking 전체 코드 ( Java ) import java.io.*; import java.util.StringTokenizer; class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static BufferedWriter bw = new BufferedWriter(new Outpu..
2021.04.21