목록Algorithm/BOJ (22)
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년 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..
2023년 6월 26일 https://www.acmicpc.net/problem/3986 시간 : ❤❤❤❤❤ 만족도 : ❤❤❤❤❤ 스택을 활용해서 쉽게 풀 수 있는 문제이다. 해당 문자열을 문자열의 길이만큼 반복문을 돌면서 스택에 넣어주고, 스택의 peek와 현재 문자가 동일할 경우 pop, 동일하지 않을 경우 add를 해준다. 최종적으로 stack이 비어있으면 count, 비어있지 않으면 count 하지 않는다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Stack; public class BAEK3986 { public static void m..
2023년 6월 25일 https://www.acmicpc.net/problem/10799 시간 : ❤❤❤❤❤ 만족도 : ❤❤❤❤❤ SWEA에서 풀었던 문제이다. 스택 자료구조를 활용해서 풀 수 있다. 코드 import java.util.Scanner; import java.util.Stack; public class BAEK10799 { public static void main(String[] args) { Stack stack; Scanner sc = new Scanner(System.in); stack = new Stack(); // 총 개수 int sum = 0; // 쇠막대기 개수 int stick = 0; // 레이저 개수 int laser = 0; String str = sc.next();..
2023년 6월 25일 https://www.acmicpc.net/problem/1406 시간 : ❤❤❤❤❤ 만족도 : ❤❤❤❤❤ 아까 풀었던 키로거 문제와 같은 유형의 문제이다. 옛날에 풀었을 때 틀렸었던 문제였다. 그 당시 코드를 보니 ArrayList 자료 구조를 사용했는데, 아마 지금은 Stack을 사용해서 Stack 에 element를 삽입하고 삭제할 때 시간 복잡도가 O(1)이므로 시간초과 됐던 문제를 해결할 수 있었다. 앞으로 있을 모든 코딩테스트 및 꼭 취득하고 싶은 B형 역량테스트에 있어서 어떤 자료구조의 시간 복잡도가 어떤지 잘 파악하고 활용할 수 있는 것이 중요하다. 코드 import java.io.BufferedReader; import java.io.IOException; impo..
2023년 6월 24일 https://www.acmicpc.net/problem/5397 시간 : ❤❤❤❤❤ 만족도 : ❤❤❤❤❤ 2개의 스택을 이용해서 풀어보았다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Stack; public class BAEK5397 { static Stack stack, temp; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); i..