전체 글 573

외판원 순회 2

📍 문제 설명 💡 접근 비용의 합을 구하는 DFS 문제, 마지막 합은 순회 지점의 합 1.1~N번 부터 출발할 수 있도록한다. 2.해당 출발지점에서 방문하지 않았고 갈 수 있는 N-1군데를 들르는 모든 경우의 수를 탐색한다. 3.N-1군데 모두 들렀으면 현재 지점에서 첫 지점으로 갈 수 있는지 확인 후 그 비용을 합한다. 👩‍💻 코드 import java.util.*; public class Main { static int n, m, sum, answer = Integer.MAX_VALUE; static int[][] board; static char[] c; static int[] arr,pm; static boolean[] visited; static int[] dx = {-1,1,0,0}; stat..

Algorithm/baekjoon 2022.02.06

맞춰봐

📍 문제 설명 💡 접근 1.주어진 문자열을 S[i][j]의 위치에 맞게 넣는다. 2.규현이가 아는 숫자 -10 ~ 10을 탐색한다. 3.현재 인덱스에 사용할 숫자를 기록한다. 4.현재까지의 인덱스까지의 합이 S[i][j]의 값과 맞는지 비교한다. 5.여기까지 통과하면 다음 인덱스 숫자를 구해본다. 6.N개의 숫자를 구했으면 답을 하나만 출력하기 위해 바로 종료시킨다. 👩‍💻 코드 import java.util.*; public class Main { static int n, m, sum, answer; static char[][] board,clone; static char[] c; static int[] arr; static boolean[] visited; static int[] dx = {-1,1,..

Algorithm/baekjoon 2022.02.06

부등호

📍 문제 설명 💡 접근 두번째 숫자부터 부등호 관계를 판단하여 재귀를 뻗어나가면 되는 문제 최댓값, 최솟값을 출력할 때 첫자리가 0인 경우도 출력해야하므로 리스트에 담아 정렬처리 👩‍💻 코드 import java.util.*; public class Main { static int n, m, sum, answer; static int[][] board,clone; static String[] s; static int[] arr; static boolean[] visited; static int[] dx = {-1,1,0,0}; static int[] dy = {0,0,-1,1}; static StringBuilder sb = new StringBuilder(); static ArrayList list =..

Algorithm/baekjoon 2022.02.06

링크와 스타트

📍 문제 설명 💡 접근 스타트와 링크 문제와 거의 유사한 문제 스타트와 링크는 N/2명의 인원수로 구성된 2팀을 뽑아 내는 것이고 링크와 스타트는 인원수 관계 없이 1명 이상의 팀으로 2팀을 뽑아내는 것이다. 1명을 팀으로 했을 때, 2명을 팀으로 했을 때, 3명을 팀으로 했을 때를 감안해야 하므로 최종지점의 값을 1부터 n-1 까지 돌린다. 결국 N명 중에 1,2,3명 뽑는 조합의 문제이다. 👩‍💻 코드 import java.util.*; public class Main { static int n, m, sum, answer = Integer.MAX_VALUE; static int[][] board,clone; static boolean[] arr; static boolean[] visited; sta..

Algorithm/baekjoon 2022.02.06

퇴사

📍 문제 설명 💡 접근 책에서 DP를 이용해서 푸는 방법을 학습했으나 브루트포스 카테고리로 분류되어 있어서 브루트포스로 풀었다. 최대점수 구하기 문제와 비슷하게 상담을 진행한다/진행하지 않는다로 분류해야 한다. 진행하지 않는 경우도 고려해야 하는 이유는 해당 상담을 진행하지 않았을 때 얻게 되는 최종 금액이 더 클 수도 있기 때문이다. 👩‍💻 코드 1.브루트포스 import java.util.*; public class Main { static int n, m, answer, sum; static int[][] board,clone; static boolean[] arr; static boolean[][] visited; static int[] dx = {-1,1,0,0}; static int[] dy ..

Algorithm/baekjoon 2022.02.05

NM과 K (1)

📍 문제 설명 💡 접근 임의의 위치에서 인접한 위치를 제외하고 k번 선택후 합을 구하는 문제 1.중복 값이 더해지지 않도록 방문처리를 한다. 2.현재의 지점에서 갈 수 있는 인접한 지점에 방문처리가 안되어있을 때만 현 지점을 더한다. 👩‍💻 코드 import java.util.*; public class Main { static int n, m, k, answer = Integer.MIN_VALUE; static int[][] board; static int[] arr; static boolean[][] visited; static int[] dx = {-1,1,0,0}; static int[] dy = {0,0,-1,1}; static StringBuilder sb = new StringBuilder(..

Algorithm/baekjoon 2022.02.05

1, 2, 3 더하기

📍 문제 설명 💡 접근 1.n을 넘지 않는 모든 합의 경우의 수를 모두 구해보면 된다. 2.보텀업 방식으로 1,2,3을 만들 수 있는 가짓수를 구해놓고 4부터 dp 테이블에 가짓수를 구해나가면 된다. 👩‍💻 코드 1.브루트포스 import java.util.*; public class Main { static int n, m, answer, cnt, min; static int[][] board,clone; static boolean[] arr; static boolean[][] visited; static int[] dx = {-1,1,0,0}; static int[] dy = {0,0,-1,1}; static StringBuilder sb = new StringBuilder(); public stat..

Algorithm/baekjoon 2022.02.05

220204

할 일 알고리즘 블로그 글 읽기(~TimSort) 백준 강의 문제 풀기(~수 이어쓰기) 한 일 오늘은 알고리즘 정리된 글을 모두 다 읽었다. TimSort는 이진 삽입 정렬 + 병합 정렬로 구성된다는건 알게됐는데 구현 내용은 너무 어려워서 다음에 다시 보기로 했다.. 그 외에 병합 정렬, 퀵 정렬, 이진 삽입 정렬에 대해서 학습했는데 여러가지 구현 방식을 알게돼서 좋은 시간이었다. 위의 정렬 방식도 완벽하게 이해한건 아니니까 여러번 봐두자~! 그리고 수 이어쓰기 문제까지 풀어보았다. 강의 문제가 꽤나 많지만 SW 역량테스트 문제랑도 거의 겹치니까 그냥 꾸준히 다 풀어본다는 생각으로 풀면 좋을듯하다.

TIL/2022 2022.02.05