본문 바로가기

Java125

20230726 [Java] 문제풀이 20230726 [Java] 문제풀이 기초 다지기!!!!! [프로그래머스] 수열과 구간 쿼리 4 import java.util.*; class Solution { public int[] solution(int[] arr, int[][] queries) { int[] answer = new int[arr.length]; for(int num = 0; num < arr.length; num++) answer[num] = arr[num]; for (int[] q : queries) { for (int i = q[0]; i 2023. 7. 26.
20230725 [Java] 문제풀이 20230725 [Java] 문제풀이 기초 다지기!!!!! [프로그래머스] 문자열 겹쳐쓰기 StringBuilder 또는 StringBuffer를 더 많이 사용해봐야겠다! class Solution { public StringBuilder solution(String my_string, String overwrite_string, int s) { StringBuilder answer = new StringBuilder(); answer.append(my_string.substring(0, s)); answer.append(overwrite_string); answer.append(my_string.substring(overwrite_string.length() + s, my_string.length()).. 2023. 7. 25.
20230720 [Java] 문제풀이 20230720 [Java] 문제풀이 [백준] 27433 팩토리얼 20! 은 int를 훨씬 넘어서 int가 아니라 long을 사용해야 한다 import java.util.*; public class baekjoon27433 { public static long factorial(long num) { if (num == 0 || num == 1) { return 1; } return num * factorial(num-1); } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); long answer = factorial(scanner.nextLong()); System.out.println(answer); } } 2023. 7. 20.
20230719 [Java] 문제풀이 20230719 [Java] 문제풀이 [백준] 2667 단지번호붙이기 1과 0으로 된 정사각형의 행렬이 주어진다 1은 아파트, 0은 빈공간 아파트는 동서남북으로 연결이 되어 있다 아파트의 수와, 각 아파트의 크기를 구하면 된다 apartNum 에 아파트의 수를 저장했다 그리고 apartments에는 아파트의 크기들을 넣었다 (나중에 sort으로 정렬을 한 후 오름차순으로 출력을 했다) 물론 0은 출력하면 안 됨 import java.util.*; public class baekjoon2667 { static int[][] map; static int[] dr = {-1, 0, 0, 1}; static int[] dc = {0, -1, 1, 0}; static int[] apartments = new in.. 2023. 7. 19.
20230718 [Java] 문제풀이 20230718 [Java] 문제풀이 [백준] 1260 DFS와 BFS 예전에 파이썬으로 풀었던 문제를 자바로 풀어보았다 DFS와 BFS를 구현하는 것이다 여기서 만약에 자식 노드, 즉 다음 정점의 개수가 1개 이상일 경우, 제일 작은 것부터 탐색을 한다 즉 모든 자식 노드들을 오름차순으로 정렬을 해주면 된다 import java.util.*; public class baekjoon1260 { public static void dfs(int[] visited, ArrayList matrix, int start) { System.out.print(start + " "); visited[start] = 1; for (int i = 0; i < matrix.get(start).size(); i++) { if .. 2023. 7. 18.
20230714 [Java] 문제풀이 20230714 [Java] 문제풀이 [백준 17478 Silver - 5] 재귀함수가 뭔가요? 재귀는 함수가, 자기 자신을 호출하는 것이다 (아는데 아직도 어려움...) 일단 count를 1씩 더하면서 num과 같아지면 return을 해준다 (break point) 그 이후에는 System.out.printf("%s라고 답변하였지.", under).println(); 이 파트가 실행이 되는 것이다 어느 한 컴퓨터공학과 학생이 유명한 교수님을 찾아가 물었다. "재귀함수가 뭔가요?" "잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어. 마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지. 그의 답은 대부분 옳았다고 하네. 그런데 어느 날, 그 선.. 2023. 7. 14.
[Java] 알고리즘 최단경로 (플로이드-워셜) [Java] 알고리즘 최단경로 (플로이드-워셜) 플로이드-워셜 다익스트라와 벨만 포드는 하나의 시작점에서 모든 노드들 사이의 거리를 알아냈다면, 플로이드-워셜은 모든 노드들 사이의 최소 거리를 알아낼 수 있다 음수가 있어도 가능하고, 자기 자신에게 가는 것이 만약 0 아래로 떨어지면 음수 사이클이라는 것을 확인할 수 있다 단 3중 for문을 사용하기 때문에 다른 최단 경로 알고리즘에 비해 시간 복잡도가 높다 이 다음에는 갱신할 데이터가 없다 import java.util.*; public class Main3 { static int[][] dist; static int INF = 1000000000; public static void floydWarshall(int nodes, int edge, int[.. 2023. 7. 11.
20230711 [Java] 문제풀이 20230711 [Java] 문제풀이 [프로그래머스] 뒤에 있는 큰 수 찾기 스택을 안 사용하고, 이중 for문을 사용하니깐 시간 초과가 나왔다 스택을 이용하여 뒤에 있는 큰 수를 찾기 위해 스택을 사용할 수 있다 import java.util.*; class Solution { public int[] solution(int[] numbers) { int[] result = new int[numbers.length]; Stack stack = new Stack(); for (int i = 0; i = numbers[i]) { s.. 2023. 7. 11.
[Java] 알고리즘 최단경로 (벨만-포드) [Java] 알고리즘 최단경로 (벨만-포드) 벨만-포드 음수 가중치를 포함해서, 시작 정점에서 다른 정점까지 최단 거리를 구할 수 있다 추가로 벨만-포드 알고리즘을 통해서 음수 사이클 존재의 여부를 알 수 있다 음수 사이클이란, 한 노드에서 다른 노드 사이의 간선이 2개가 존재하고, 왔다 갔는데, 가중치가 오히려 내려가는 것 A, B가 있는데 A -> B 는 8 이고 B -> A 는 -9 라고 하면, A와 B를 오고 가면 -1이 된다 모든 간선을 순회한다!!! import java.util.*; public class Main2 { static class Edge { int from; int to; int distance; Edge(int from, int to, int distance) { this.f.. 2023. 7. 10.