본문 바로가기

알고리즘

(42)
미생물 격리[swexpertacademy] 링크 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV597vbqAH0DFAVl 활용가능 장치 구조체, 새로운 맵(2차원배열) import java.util.Scanner; public class Solution { public static int T, N, M, K;// N 크기 M 시간, K 개수 public static int[] dx = new int[] { 0, -1, 1, 0, 0 }; public static int[] dy = new int[] { 0, 0, 0, -1, 1 }; public static Node[][] map = new Node[1020][1020]; public static No..
무선 충전[swexpert academy] 링크: https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXRDL1aeugDFAUo 시뮬레이션 2차 풀이 방식 : arrayList[][] 활용 (훨씬 깔끔) / 원래 3차원 배열로 다시 풀어보려고 했는데, 굳이 어제의 비효율적인 방식을 반복할 필요는 없다고 판단. -> 설계를 코드로 옮기다가 다시 바꿈. 7:38 ~ 8:01 설계/ 구현 8:01 ~ 8:51 천천히 함(확실히 실수는 줌) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 4..
DAM dfs 로 접근했는데 미친생각이었다 (-_-) 그래서 디버깅하고 다시 갈아엎느라 39분 걸림 (-_-^) 이럴 문제가 아닌데 해당 부분 메소드만 bfs로 바꿔서 구현함 그리고 예외 1가지 걸린 것 있었음(다 차지 직전, 마지막 댐 짓는건 어차피 다 찬 상태이므로 지어봤자 무의미 -> -1 출력했어야) 근데 딱히 설계 적을거린 없었지만, dfs를 사용할지 bfs 사용할지는 좀 고민해보고 풀어야 되는게 맞는거 같다. 지금 푸는 단원이 BFS,DFS니까 그냥 묻지도 따지지도 않고 푸는 경향이 있는데 이러면 ㄴㄴ import java.util.Scanner; import java.util.*; public class Main{ public static int maxHeight=0; public static in..
SAFETYZONE 시간내에 풀긴 했지만 구현하는부분에서 조금씩 잘못 구현해서 30분내에 풀기 벅찼음. ex> 가로 세로 (n) 으로 했어야 했는데, 무의식적으로 다른 걸 사용했음. 큰 틀은 크게 문제 없었음. import java.util.Scanner; import java.util.*; public class Main{ public static int[] dx = new int[]{0,1,0,-1}; public static int[] dy = new int[]{1,0,-1,0}; public static int maxRain; public static int n; public static int[][] arr,backup; public static boolean[][] v; public static void main..
ICEBERG 이슈: 맵을 수정할때, 바로 수정 해서 이슈가 있었다. 안전하게 map에서 숫자 몇을 뺄지 저장하는 임시 map을 만들어서 했어야 했는데, 안일했다. import java.util.Scanner; public class Main{ public static int[] dx = new int[]{0,1,0,-1}; public static int[] dy = new int[]{1,0,-1,0}; public static int sero,garo; public static boolean[][] v; public static int[][] map,cntMap; public static void main(String[] args) { Scanner scan = new Scanner(System.in); input..
LETTER 30분내에 풀고 싶어서 중복처리 로직을 dfs 함수 안에서 직접함.(전에 풀이 방식이 기억이 안났다) 시간복잡도는 충분하다고 판단해서 이리 했음. 더 좋은 풀이-> 중복체크 (1차원 배열)을 만들어서 체크하는거.(코드 간결,시간도 더 짧음) 오늘풀이 import java.util.Scanner; import java.util.*; public class Main{ public static int max=0; public static int sero,garo; public static int[][] map; public static boolean[][] visit; public static int[] dx = new int[]{0,1,0,-1}; public static int[] dy = new int[..
Area import java.util.Scanner; import java.util.*; public class Main{ public static ArrayList answer = new ArrayList(); public static int score=0; public static int[] dx = new int[]{0,1,0,-1}; public static int[] dy = new int[]{1,0,-1,0}; public static int sero,garo,distriction; public static int[][] map; public static boolean[][] visit; public static void main(String[] args){ // Please Enter Your Co..
TREASURE 구현하면서 방문테이블을 매번 bfs 수행 후 초기화 시켜줘야 하는 것을 까먹었다. 5번 수행할 때, 같이 해줬어야 했는데, 아니면 적어주던가. import java.util.Scanner; import java.util.Queue; import java.util.LinkedList; import java.util.ArrayList; import java.util.Collections; public class Main{ public static int[] dx = new int[]{0,1,0,-1}; public static int[] dy = new int[]{1,0,-1,0}; public static int sero,garo; public static int[][] map,score,record; p..