일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 디베이스앤
- 개발자 면접 준비
- JPA
- 백트래킹
- 이분탐색
- 디베이스앤 인턴 후기
- 면접 필수 질문
- 백준
- 프로그래머스 이중우선순위큐 java
- 위상정렬
- 이중우선순위큐 java
- Java
- Gradle
- 프로그래머스
- oracle ansi sql
- Spring Boot
- DBASE&
- SQL
- 프로그래머스 이중우선순위큐
- 이중우선순위큐 자바
- BFS
- DFS
- 프로그래머스 이중우선순위큐 자바
- IT 면접 준비
- oracle ansi
- 그리디
- DP
- ansi sql 단점
- ansi sql 장점
- CJ DBASE&
- Today
- Total
목록알고리즘 (76)
쉬운 프로그래밍
www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 그리디는 매 시점에 최선의 선택을 하는 알고리즘이다. 입력으로 오름차순으로 정렬된 동전 배열을 주었기에 배열의 마지막 인덱스부터 반복문을 돌린다. 딱히 그리디 알고리즘을 따로 공부하지 않아도 풀 수 있는 문제인 것 같다. 코드 설명은 주석으로 달아놨다. import java.io.BufferedReader; import java.io.InputSt..
www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net 총원 4명이 축구를 한다고 예를 들면 (1, 2), (3,4)와 같이 팀 순서쌍을 어떤 방식으로 만드냐가 문제를 푸는데 핵심문제이다. visited[] boolean 배열을 만들어서 true인 인덱스끼리 한 팀, false인 인덱스끼리 한 팀이라는 아이디어로 문제를 해결하였다. 백트래킹 방식을 적용하여 모든 경우에 대한 순서쌍을 만들었다. 코드 설명은 주석에 자세히 써놓았다. import java.io.BufferedReader; ..
www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, www.acmicpc.net 문제 해결 방법 자체는 떠올리기 쉬웠다. 아래 그림과 같이 연산자의 개수를 통해 유망한 노드인지 가지치며 깊이우선탐색을 진행하며 depth가 꽉 차면 최대값과 최소값을 판단하고 반환하는 방식을 떠올렸다. 자세한 설명은 코드에 주석을 적어놨다. import java.io.BufferedReader; import java.io.IOException; impor..
www.acmicpc.net/problem/2580 2580번: 스도쿠 스도쿠는 18세기 스위스 수학자가 만든 '라틴 사각형'이랑 퍼즐에서 유래한 것으로 현재 많은 인기를 누리고 있다. 이 게임은 아래 그림과 같이 가로, 세로 각각 9개씩 총 81개의 작은 칸으로 이루 www.acmicpc.net 이 문제에서 핵심은 '노드가 유망한지 검사'하는 것이다. 유망한지 판단이 완료되면 맞는 값을 스도쿠판에 집어넣고 다음 재귀함수를 호출한다. 백트래킹 문제를 풀 때에는 항상 노드가 유망한지 검사하는 것에 초점을 맞추어 가지치기를 해야할것. 자세한 설명은 주석으로 달아놨다. import java.io.BufferedReader; import java.io.IOException; import java.io.Input..
programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr import java.util.*; class Solution { public int solution(int n, int[][] computers) { boolean visited[] = new boolean[n]; int answer = 0; for (int i = 0; i < n; i++) { if (!visited[i]) { answer += bfs(computer..
programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr import java.util.*; class Solution { public int solution(int[] numbers, int target) { return dfs(numbers, target, 0, 0); } public int dfs(int[] numbers, int target, int depth, int v..
www.acmicpc.net/problem/4179 4179번: 불! 입력의 첫째 줄에는 공백으로 구분된 두 정수 R과 C가 주어진다. 단, 1 ≤ R, C ≤ 1000 이다. R은 미로 행의 개수, C는 열의 개수이다. 다음 입력으로 R줄동안 각각의 미로 행이 주어진다. 각각의 문 www.acmicpc.net 지훈이는 매분 미로를 상하좌우로 한 칸씩 이동할 수 있다. 불도 매분 상하좌우로 퍼진다. 불을 피해서 지훈이는 미로를 탈출해야한다. Queue를 두 개 사용한 방법과 한 개 사용한 방법 두가지고 구현했다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.uti..
www.acmicpc.net/problem/2583 2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오 www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class BOJ_2583 { static int m; static int n; static int k; static int[][] map; static boolean[][] vi..