일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 장고
- codesandbox
- 자바 공부
- JavaScript
- react
- 자바
- 자바스크립트
- 디자인 패턴
- 백준
- vanillaJS
- 데이터모델링과마이닝
- 프로그래머스 완전탐색
- React JS
- 코틀린
- 리액트 훅
- useState
- 코딩테스트 고득점 Kit
- 프로그래머스
- 리액트
- useEffect
- 프로그래머스 자바
- websocket
- Java
- react firebase
- react hook
- 컴퓨터 네트워크
- 프로그래밍 언어론
- design pattern
- 코딩테스트 고득점 Kit 완전탐색
- NextJS
- Today
- Total
목록Algorithm (90)
기록하는 개발자

https://www.acmicpc.net/problem/11729 11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 www.acmicpc.net 하노이탑 하노이탑 문제는 전공 수업 때도 배우는만큼 굉장히 유명한 공식이다. 하노이탑의 가장 큰 규칙은 아래 두 가지로, 두 규칙을 지키면서 다른 기둥으로 옮기기 위한 과정을 수열로 표현해보자. 1. 한 번에 한 개의 원판만을 다른 탑으로 옮길 수 있다. 2. 쌓아 놓은 원판은 항상 위의 것이 아래의 것보다 작아야 한다. 세 개의 장대 위에 n개의 원판이 쌓여있다. 각 원판은 반경이 ..

https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; import java.util.StringTokenizer; import java.util.Arrays; import java.util.LinkedList; import java.util.Queue; pub..

https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; import java.util.StringTokenizer; import java.util.LinkedList; import java.util.Queue; public class Main { public static ..
https://www.acmicpc.net/problem/9935 9935번: 문자열 폭발 첫째 줄에 문자열이 주어진다. 문자열의 길이는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 둘째 줄에 폭발 문자열이 주어진다. 길이는 1보다 크거나 같고, 36보다 작거나 같다. 두 문자열은 모 www.acmicpc.net import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; import java.util.Stack; public class Main { public static void main(String[] args) throws IOException { BufferedReader br ..

https://www.acmicpc.net/problem/2230 2230번: 수 고르기 N개의 정수로 이루어진 수열 A[1], A[2], …, A[N]이 있다. 이 수열에서 두 수를 골랐을 때(같은 수일 수도 있다), 그 차이가 M 이상이면서 제일 작은 경우를 구하는 프로그램을 작성하시오. 예를 들어 www.acmicpc.net 투 포인터 알고리즘을 사용하는 문제이다. 이중 포문으로 포인터 두 개를 쓸 문제를 O(N)으로 탐색할 수 있다. - 순열 내 두 정수의 차가 M 이상이면서 가장 작은 수를 구하므로 M과 동일한 차가 존재하면 즉시 반복문을 종료한다. - 2230 문제의 예제 입력과 같이 M과 동일한 차가 존재하지 않는 경우는 Math.min을 사용해 기존 최솟값과 비교하여 더 작은 수를 저장한다..

https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; import java.util.Queue; import java.util.LinkedList; public class Main { static int[][] miro; static boolean[][] c..

https://www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 1. dp의 1~3번 째 칸을 미리 채워놓고 for문을 시작하므로 N이 3이하일 경우는 따로 처리해준다. 2. 계단 수가 4이상인 경우 : 4번 째칸 부터 이전 칸들의 점수 최댓값을 이용해 현재 i 칸의 점수 최대값을 계산 한다. 3. dp[i]=Math.max( (dp[i-3] + stair[i] + stair[i-1]), (dp[i-2] + stair[i]) ); - 1. dp[i-3] + stair[i]..

https://www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net dp 또는 dfs로 해결 가능한 문제이며 아래 해답 코드는 dp를 사용하였다. 1. 편의를 위해 마지막 날부터 거꾸로 계산한다. 2. nowTime = 현재 날짜 + 상담에 걸리는 일 수 3. nowTime이 N+1보다 크면 dp[i]는 dp[i+1]과 동일 N+1 → 마지막 날(N번 째 날) 상담에 걸리는 일 수가 하루일 경우를 대비 4 - 1. 현재 날짜 i일의 상담을 선택하지 않은 경우 → dp[i+1] 4 - 2. 현재 날짜 i일의 상담을 선택한 경우 이익 → p[i] + dp[nowTime] → 현재 ..