분류 전체보기 215

백준-14888번/연산자 끼워넣기(java)

문제 이해 모든 경우의 수를 구해보면서 조건을 만족시키는 값을 구해야 하므로 백트래킹을 사용해야 하는 문제이다. ※주의 할 점연산의 우선순위를 무시하고 앞에서부터 차근차근 계산해야 한다. 문제 풀이 백트래킹을 구현하기 위해 DFS를 구현했다.이때 처음 value값으로 넘어오는 것은 arr[0]번째 수이다.public static void dfs(int index, int value) { // 모든 숫자를 다 사용한 경우 if(index == N) { if(value > max) { max = value; } if(value 0) { x[i]--; if(i == 0) { // + ..

알고리즘/백준 2024.08.01

백준-1339번/단어 수학(java)

문제 이해 알파벳 대문자에 각각 숫자를 대입한 결과가 최대값이 되는 경우를 구하면 되는 문제이다.ex)   AAA                              999+      AAA              ===>   +   999----------------                     -------------- 문제 해결 1)  알파벳의 끝부터 자릿수 구하기(1,10,100,1000 .....)for(int i=0; i=0; j--){ //자릿수 설정 a[st.charAt(j)-'A']+=v; v=v*10; }} 이 과정을 통해 각 알파벳이 어느 자리에 있는지를 파악할 수 있다.  2) 알파뱃 배열을 자릿수가 큰것부터 내림차순으로 정렬Arrays.sort..

알고리즘/백준 2024.07.31

백준-11725번/트리의 부모 찾기(java)

문제 이해 트리를 생성하고, 각 노드의 부모를 찾는 것을 구현하면 되는 문제이다. 이 문제는 시간초과 때문에 여러번 실패했다. 하지만 리스트로 트리를 구현하였더니 트리의 노드 삽입 및 순회 속도가 간단해져서 정답으로 인정 됐다. 문제 풀이 시간초과가 발생한 코드import java.util.Scanner;public class Problem11725 { static Node head = new Node(1,null,null); static boolean check; static boolean[] visit; static int[] parent; public static void main(String[] args) { Scanner scanner = new Scann..

알고리즘/백준 2024.07.31

백준-1991번/트리순회(java)

문제 이해 자바를 통해 트리를 구현하고 전위순회, 중위순회, 후위순회를 구현해 보았다.파이썬으로는 구현해본 경험이 있지만 자바로는 처음 구현해보아서 약간 생소했다.  이 문제를 풀기 위해서 가장 중요한 것은 노드를 삽입을 구현하는 것이다. 문제 해결 우선 트리를 구현하기 위해서 Node 클래스를 만들어 준다. 필드값1) data ==> 노드가 가지고 있는 데이터2) left ==> 왼쪽 자식 노드3) right ==> 오른쪽 자식 노드 static class Node{ private char data; private Node left; private Node right; Node(char data) { this.data = data; this.left = null..

알고리즘/백준 2024.07.29

인텔리제이 자주 사용하는 단축키

Ctrl+Alt+s ==>preference Alt+Ins ==> getter and setter , 생성자 Ctrl+Shift+t ==>테스트 클래스 추가 Ctrl+B ==> 지정된 클래스로 이동 **** iter입력 후 tap ==>for문 자동 생성 메서드 드레그 후 Ctrl+D ==> 복사 붙혀넣기 Ctrl+Shift+Enter ==> 바로 다음줄로  넘어감 Ctrl + O ==> Select Methods to Oberride/Implement Ctrl+Alt+Insert ==> 클래스 생성 Ctrl + E + Enter ==> 이전에 방문했던 클래스,파일로 이동Ctrl + F6 ==> Rename

컴퓨터 2024.07.28

백준-13913번/숨바꼭질 4(java)

문제 이해 1697번 문제 숨바꼭질과 비슷한 문제이지만, 요구사항이 하나 더 추가 되었다.https://developerwoohyeon.tistory.com/114 백준-1697번/숨바꼭질(java)문제 이해 기존의 BFS 문제들이랑 크게 다를것은 없었다. 이동 경로만 잘 생각해주면 그렇게 어려운 문제는 아니다. 이동 경로 1) 1칸 앞으로 이동2) 1칸 뒤로 이동3) 현 위치 * 2 만큼 이동 이러developerwoohyeon.tistory.com  추가된 요구사항 : 목적지 까지의 최소 이동시간이 소요되는 경로를 순서대로 출력 경로를 순서대로 출력하기 위해서는 배열이 하나 더 추가되어야 한다. static int[] arr = new int[100001];static int[] time = new ..

알고리즘/백준 2024.07.28

백준-1697번/숨바꼭질(java)

문제 이해 기존의 BFS 문제들이랑 크게 다를것은 없었다. 이동 경로만 잘 생각해주면 그렇게 어려운 문제는 아니다. 이동 경로 1) 1칸 앞으로 이동2) 1칸 뒤로 이동3) 현 위치 * 2 만큼 이동 이러한 이동을 구현하기 위해 move 배열 생성static int[] move = {1,-1,2}; 이동 규칙1) 방문했던 곳을 방문X2) 이동에 걸리는 시간을 출력해야 하므로 이동 할때마다 시간 +13) 방문했다면 visit 배열에 방문을 표시 문제 풀이 public static void BFS(int now){ Queue queue = new LinkedList(); queue.add(now); visit[now]=true; while(!queue.isEmpty()){ ..

알고리즘/백준 2024.07.27