2024.08.29기준 - 실버2백준, BEAKJOON, BOJ, JAVA, 자바 풀이이 문제는 정점의 개수, 간선의 개수, 시작 정점이 주어질 때, dfs를 이용하여 1 ~ n까지의 정점의 깊이를 출력하는 문제입니다. 주의점은 문제에서 시간 초과가 계속 나왔는데... LinkedList()로 접근을 해서 시간복잡도가 더 늘어난걸 알게되었습니다!..정렬을 이용할 때는 LinkedList보다는 ArrayList를 사용해야 된다는 정보를 얻을 수 있는 문제였습니다. 1. 정점의 수는 1부터 시작하기 때문에 depth를 n + 1크기로 생성해 간선과 깊이를 초기화 시켜주었습니다.depth = new int[n + 1];list = new ArrayList();for (int i = 0; i ()); de..
2024.07.28기준 - 실버2백준, BEAKJOON, BOJ, JAVA, 자바 풀이이 문제는 입력된 수식에서 괄호를 이용해서 가장 작은 수를 만드는 문제입니다. 1. 입력받은 문자열을 +, -를 기준으로 분류를 해주었습니다.StringTokenizer st = new StringTokenizer(br.readLine(), "+-", true); // +와 -를 기준으로 분리하며 +, -도 리턴해서 받는다. 2. 입력받은 문자열들 중에서 -를 찾아 수식을 계산을 진행합니다.※ -가 한번 들어오는 순간 부터는 무조건 -를 할 수 있어 첫 번째 -를 기준으로 앞에는 더 해주며, 뒤에는 빼주었습니다.int sum = 0;boolean check = false; // - 체크String s;while (st..
2024.07.27기준 - 실버1백준, BEAKJOON, BOJ, JAVA, 자바 풀이이 문제는 주어진 정점과 인접 행렬이 주어졌을 때, 인접 행렬을 통해 갈 수 있는 곳을 1로 못가는 곳을 0으로 해서 출력하는 문제입니다. 이 문제에 접근하기 위해서 플로이드 위셜 알고리즘을 통해 접근을 하였습니다. 플로이드 워셜 알고리즘그래프 내 모든 정점 쌍의 최단 경로를 반복적으로 계산합니다.두 정점 사이의 최단 경로가 어떤 중간 정점을 거쳐서 갈 때 더 잛은지를 확인하여 입력하는 방식입니다.플로이드 위셜 알고리즘 작동 과정1. 초기화● 그래프의 인접 행렬 d를 사용합니다. 여기서 d[i][j]는 정점 i에서 정점 j로 가는 초기 가중치를 의미합니다.● 만약 i에서 j로 직접적인 간선이 없다면 d[i][j]를 무한..
2024.07.26기준 - 브론즈2백준, BEAKJOON, BOJ, JAVA, 자바 풀이이 문제는 입력받은 3개의 수를 곱한 다음 0 ~ 9까지의 숫자를 몇 번 사용했는지 출력하는 문제입니다. 최대로 입력 받을 수 있는 수가 1000000이기 때문에 큰 수를 연산하는 BigInteger을 사용하여 문제에 접근했습니다. 1. 입력받은 3개의 수를 BigInteger로 곱하기 연산을 하여 저장합니다.int a = Integer.parseInt(br.readLine());int b = Integer.parseInt(br.readLine());int c = Integer.parseInt(br.readLine());// 최대값을 입력받으면 값이 크기 때문에 BigInteger로 입력 받기BigInteger mul..