부등호 문제풀이 이 문제는 완전 탐색을 통해서 해당 조건에 일치하는 배열을 모두 만들어 그 중에서 최대값과 최소값을 찾는 문제다. dfs 메서드로 재귀 방식을 이용하여 완전탐색을 진행한다. dfs 메서드의 매개변수로는 저장할 문자열 str, 부등호 배열 ineqAr
백준 소수 구하기 문제이 문제는 소수 구하기 문제입니다소수 구하기 문제는 단순한 이중 반복문을 통해서 해결할 수도 있지만 가끔씩 시간 초과가 발생하는 문제가 있습니다. 그런 문제를 해결하기 위해 고안된 방법이 에라토스테네스의 체입니다.에라토스트네스의 체는 소수가 되는
바이러스연결되어 있는 모든 컴퓨터를 다 탐색해야 하므로 이 문제는 DFS 방식으로 구현할 수 있습니다.저는 DFS 방식을 코드로 구현할 때 visit 배열과 2차원 배열을 전역 변수로 설정하는 편입니다.dfs 메서드의 매개변수에 해당하는 정수값을 visit 배열의 원소
외판원 순회2N개의 도시들이 존재하고,각 도시를 연결하는 경로에 비용 값이 존재하는 문제입니다.따라서 단순한 dfs 문제에서 조금 더 생각을 요구하는 문제입니다.도시를 움직이면서 드는 최소한의 비용을 찾아야 하는 문제이므로 도시를 완주하는 경로들을 탐색하여 비용 값을
포도주 시식연속하여 놓여있는 3잔의 포도주를 마실 수 없는 규칙이 있는 문제입니다. 이 문제는 다이나믹 프로그래밍으로 풀 수 있습니다.문제의 핵심은 맨 마지막 와인을 마셨을 때 최대값이 나올 수도 있지만 마시지 않았을 때 최대값이 나올 수도 있다는 점입니다. 그래서 총
https://www.acmicpc.net/problem/14501이번 문제는 2가지 방법으로 구현이 가능할 것 같습니다.Dynamic Programming과 완전탐색 문제로 풀 수 있습니다.저는 DFS를 활용한 완전탐색 방식을 사용했습니다.업무시작 날짜, 금
이 문제의 경우에는 크게 2가지 경우로 분류할 수 있습니다.뒤에 두 숫자가 10보다 작거나 26보다 큰 경우 뒤에 숫자가 10보다 작거나 26보다 큰 경우에는 dp 배열에서 i-1 값과 동일한 값을 dp 값으로 가집니다. 이 경우를 점화식으로 표현하면 dp\[i]
간식 파티오름차순으로 가장 큰 합을 가지는 DP 배열을 만드는 문제다초기 DP 배열 값은 입력된 배열 값과 동일하게 설정이중 for문으로 오름차순을 가지는 배열값(arri)이 나오면 dp\[i] = Math.max(dp\[i], dp\[j] + arr\[i])
인구 이동인구 이동은 국경선을 오픈하고 이동할 수 있는 나라들의 평균을 배열에 다시 입력하는 과정을 반복하는 문제입니다.국경선을 오픈하는 과정은 BFS 방식을 사용합니다.BFS 방식은 x,y를 필드로 가지는 클래스를 적용합니다.dx, dy 배열을 만들고 해당 배열을 토
배열 돌리기주 대각선 / 중간 열 / 부 대각선 / 중간 행이 회전한 배열을 출력하는 문제입니다.시계 방향으로 45도 회전하는 경우 → rotationRight() 메서드주 대각선에 있는 모든 요소 → 중간 열로 이동중간 열에 있는 모든 요소 → 부 대각선으로 이동부
백준 URLhttps://www.acmicpc.net/problem/2302좌석은 한 줄로 되어 있고 왼쪽부터 차례로 1번 ~ N번까지 번호가 있습니다.일반적으로 입장권에 5번이 쓰여 있다면 4번, 6번과 같이 옆자리에 앉을 수 있습니다.하지만 VIP 회원들은
행복유치원행복 유치원 문제는 그리디 알고리즘을 사용하여 해결하는 문제입니다.조마다 티셔츠를 맞추는 비용은 조에서 가장 키가 큰 원생과 가장 키가 작은 원생의 키 차이만큼 든다는 조건이 존재합니다.이 문제를 해결하기 위해서는 우선 정렬을 해줘야 합니다.오름차순으로 정렬을
코드
깊이 우선 탐색(DFS) 동작 원리 : 스택 구현 방법 : 재귀 함수 사용 탐색 순서 : 1 -> 2 -> 7 -> 6 -> 8 -> 3 -> 4 -> 5 수행 과정 탐색 시작 노드를 스택에 삽입하고 방문 처리를 한다. 스택의 최상단 노드에 방문하지 않은 인접한 노