목록Algorithm (27)
Record
2023년 12월 8일 주사위 윷놀이 시간 : ❤❤❤🤍🤍 만족도 : ❤❤❤🤍🤍 각 경로를 나눈 것까지는 좋았으나, 25, 30, 35, 40에서 겹치는 경우를 처음에 생각하지 못했다. 또한 30에서 출발하는 경로에서 30이 중복되는 케이스 또한 생각하지 못해서 자꾸 틀렸다. 그래서 코드를 다 고치기 보다는 첫 스타트를 -30으로 바꿔준 뒤 -30을 총 점수에 더할 때는 절댓값 처리를 해준 후 더해주는 방식으로 해결하였다. 풀이 접근법은 좋았으나, 경우의 수를 자세하게 고려하지 못했던 것이 아쉽다. 코드 package algorithm_Java; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReade..
2023년 12월 6일 상어 중학교 시간 : ❤❤❤❤❤ 만족도 : ❤❤❤❤❤ 내일 할 게 많아서 그냥 자기 전에 미리 풀었다. 12시 30분쯤 풀기 시작해서 정확히 오전 2시에 제출해서 첫 시도만에 Solve!!!! 특별한 ? 알고리즘이 사용되지 않는 한 삼성 SW 역량테스트는 문제에 주어진 조건들을 모듈화하면 쉽게 해결할 수 있다. 먼저 중력, 반시계 90도 회전 class를 구현한 후, 디버깅까지 완료했고 이후에 메인 조건인 그룹 찾는 class 또한 구현하였다. 하지만 처음에 출력값이 다르게 나왔는데 디버깅 해보니 블록 그룹은 최소 2개 이상의 블록이 있어야 한다는 지문의 내용과 다르게 구현됐다. 따라서 pq에 담긴 블록그룹들의 블록 개수가 전부 2 미만일 때 오토 플레이를 멈추도록 구현했더니 so..
2023년 12월 5일 https://www.acmicpc.net/problem/20056 시간 : ❤❤❤❤❤ 만족도 : ❤❤❤❤❤ 모듈화해서 풀면 쉽게 풀리는 문제. 주말에 코딩테스트 응시할 때는 1문제 완벽하게 푼다는 생각으로 검토를 꼼꼼하게 해서 풀 것. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import java.util.StringTokenizer; public class BAEK20056 { static class Fireball { int m, d, s; public Fi..
2023년 12월 5일 루돌프의 반란 시간 : ❤❤❤🤍🤍 만족도 : ❤❤❤❤❤ 한 번에 통과했다!!! 삼성 SW 역량테스트 유형은 모듈화하는 것이 중요한 것 같다. main class에는 기능별 class를 만들어놓고 최대한 간단하게 class를 호출해서 사용하는 식으로 해결해나가면 될 것 같다. 세메스 코테 잘 준비하자!! 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class CODE루돌프의반란 { static int N, M, P, C, D; static int[][] map; // 상우하좌 순서 static int[] dx ..
2023년 12월 4일 왕실의 기사 대결 시간 : ❤🤍🤍🤍🤍 만족도 : ❤❤❤🤍🤍 큐를 사용하지 않고 그냥 빡구현으로 풀었다. 기사의 범위를 옮길 때, 반복문에서 범위 설정을 잘못해서 처음에 틀렸지만 검토 후 수정해서 바로 통과할 수 있었다. 과연 시험장에서 4시간 쏟았을 때 풀 수 있었을까..? 코드 import java.util.*; import java.io.*; public class CODE왕실의기사대결 { static int L, N, Q; static int[][] board, knightBoard; static int[] dx = {-1, 0, 1, 0}; static int[] dy = {0, 1, 0, -1}; static List knights; static List who; stat..
2023년 9월 28일 놀이기구 탑승 시간 : ❤❤❤🤍🤍 만족도 : ❤❤❤❤🤍 Class 를 만들고 해당 클래스를 Comparable로 구현한 다음, 정렬하는 방식으로 시도했더니 쉽게 풀렸다. 코드 import java.util.*; import java.io.*; public class Main { static class Node implements Comparable { int x, y, blank, friends; public Node(int x, int y, int blank, int friends) { this.x = x; this.y = y; this.blank = blank; this.friends = friends; } @Override public int compareTo(Node o) ..
2023년 9월 23일 포탑 부수기 시간 : ❤❤🤍🤍🤍 만족도 : ❤🤍🤍🤍🤍 레이저 공격할 때 BFS로 접근하지 못했고 DFS로 접근해서 제대로 풀지 못했다. 다행히 해당 문제를 푸시고 블로그에 올려주신 분이 계셔서 참고하고 풀 수 있었다.. 그리고 공격자나 공격 대상자를 뽑을 때 Class를 정렬해서 선정한 것을 생각못했다. 마지막으로 밑에 해당하는 코드는 BFS 탐색했을 시 역추적하는 메소드이다 다시 알고리즘 풀려고 하니까 힘들다… 코드 private static boolean laser(Turret start, Turret target) { Turret[][] route = new Turret[N][M]; Queue q = new LinkedList(); boolean[][] visited = ne..
2023년 6월 27일 https://www.acmicpc.net/problem/19237 시간 : ❤🤍🤍🤍🤍 만족도 : ❤🤍🤍🤍🤍 특별한 알고리즘은 없지만 구현이 까다로운 문제이다. Queue를 사용해서 상어들을 큐에 넣어서 해결하려고 하다가 도저히 풀리지가 않아서 다른 방법으로 해결해보았다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.sql.Array; import java.util.*; public class BAEK19237 { static class Shark { int x; int y; int dir; public Shark (int x, int..