| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- backjoon
- 데이터베이스
- 프로그래머스
- 금융IT
- 개발
- 멀티스레드
- dfs
- 현대오토에버 코딩테스트
- 모바일
- 익명객체
- 다이나믹 프로그래밍
- 알고리즘
- 너비탐색
- Java
- 네트워크
- 삼성SW테스트
- 안드로이드
- Android
- 언더라이터
- 백준
- IT
- 자바
- dp
- 삼성sw문제
- 익명클래스
- 조합
- BFS
- 백준 알고리즘
- 재귀함수
- CKLU
- Today
- Total
목록Algorithm (50)
Limky 삽질블로그
BackJoon #7576 - 토마토(Tomato) https://www.acmicpc.net/problem/7576 백준 쉬운 토마토 문제 BFS로 돌리면 쉽게 해결 할 수 있습니다. ㅎㅎ package BackJoon.Graph.BFS; import java.awt.Point; import java.util.ArrayList; import java.util.Arrays; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class Tomato2 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int m =..
BackJoon #1914 - 하노이(Hanoi) https://www.acmicpc.net/problem/1914 하노이 솔루션 우선 n개를 쌓을 경우 n번째를 제외한 n-1를 하나로 간주하고 3가지 스텝을 거치면 풀린다.... 1. 1기둥에 있는 n-1개를 3기둥을 이용하여 2기둥으로 옮긴다!2. 1기둥에 있는 1개를 3기둥으로 옮겨라3. 2기둥에 있는 n-1개를 1기둥을 이용하여 3기둥으로 옮겨라! ** 문제는 출력초과 **- 이 부분은 좀 더 연구가 필요하다....아시는 분은 저에게 가르침을... package BackJoon.Recursion; import java.util.Scanner; public class Hanoi { public static void main(String[] args)..
BackJoon #11403 - 경로찾기(Find Directions) https://www.acmicpc.net/problem/11403 위 문제는 DFS 탐색 예제입니다... DFS는 보통 재귀함수 (Recursion)을 사용하는데, 재귀함수에 대한 연습도 할 겸 풀어보시면 좋습니다. 우선 기본적으로 DFS 재귀함수를 통해 i에서 j로가는 경로가 있는지 c 1차원 배열에 경로 여부를 체크합니다. 또한, 다음 경로탐색을 위해 Arrays.fill 메서드를 이용 0으로 초기화 해줍니다. n+1로 n값에 +1을 한 이유는 편의상 배열의 첨자와 정점의 싱크를 맞추기 위해서 입니다. 0번 인덱스는 신경쓰지 않으셔도 됩니다. 즉 정점은 1부터 시작하니 그냥 2차원배열이든 1차원배열이든 1첨자로 부터 시작하기 위..
Programmers Level_03 가장 큰 정사각형 찾기 (find Largest Square)O와 X로 채워진 표가 있습니다. 표 1칸은 1 x 1 의 정사각형으로 이루어져 있습니다. 표에서 O로 이루어진 가장 큰 정사각형을 찾아 넓이를 반환하는 findLargestSquare 함수를 완성하세요. 예를 들어12345XOOOXXOOOOXXOOOXXOOOXXXXX가 있다면 정답은12345XOOOXXOOOOXXOOOXXOOOXXXXX가 되며 넓이는 9가 되므로 9를 반환해 주면 됩니다. 저는 점화식 DP로 풀었습니다.1 11 1 인 경우 (1,1) 에 있는 값은 (1,0),(0,0),(0,1) 3방향에 있는 값들이 모두 1이상이면 이 3가지 값 중에 가장 작은 값에서 +1을 한 값이 결국 (1,1)의 값..
Programmers Level_03 땅 따먹기 게임 (Hopscotch) 영희는 땅따먹기 게임에 푹 빠졌습니다. 땅따먹기 게임의 땅은 총 N행 4열로 나누어져 있고, 모든 칸에는 점수가 쓰여 있습니다. 땅을 밟으면서 한 행씩 내려올 때, 영희는 각 행의 4칸 중 1칸만 밟으면서 내려올 수 있습니다. 땅따먹기 게임에는 같은 열을 연속해서 밟을 수가 없는 특수 규칙이 있습니다. 즉, 1행에서 (5)를 밟았다면, 2행의 (8)은 밟을 수가 없게 됩니다. 마지막 행까지 모두 내려왔을 때, 점수가 가장 높은 사람이 게임의 승자가 됩니다. 여러분이 hopscotch 함수를 제작하여 영희가 최대 몇 점을 얻을 수 있는지 알려주세요. 예를 들어 1 2 3 5 5 6 7 8 4 3 2 1 의 땅이 있다면, 영희는 각 ..
Programmers Level_03 야근지수 (NoOverTime) 야근 지수 회사원인 수민이는 많은 일이 쌓여 있습니다. 수민이는 야근을 최소화하기 위해 남은 일의 작업량을 숫자로 메기고, 일에 대한 야근 지수를 줄이기로 결정했습니다. 야근 지수는 남은 일의 작업량을 제곱하여 더한 값을 의미합니다. 수민이는 1시간 동안 남은 일 중 하나를 골라 작업량 1만큼 처리할 수 있습니다. 수민이의 퇴근까지 남은 N 시간과 각 일에 대한 작업량이 있을 때, noOvertime 함수를 제작하여 수민이의 야근 지수를 최소화 한 결과를 출력해 주세요. 예를 들어, N=4 일 때, 남은 일의 작업량이 [4, 3, 3] 이라면 야근 지수를 최소화하기 위해 일을 한 결과는 [2, 2, 2]가 되고 야근 지수는 22 + 2..
Programmers Level_04 최고의 집합 (Best Set) 자연수 N개로 이루어진 집합 중에, 각 원소의 합이 S가 되는 수의 집합은 여러 가지가 존재합니다. 최고의 집합은, 위의 조건을 만족하는 집합 중 각 원소의 곱이 최대가 되는 집합을 의미합니다. 집합 원소의 개수 n과 원소들의 합 s가 주어지면, 최고의 집합을 찾아 원소를 오름차순으로 반환해주는 bestSet 함수를 만들어 보세요. 만약 조건을 만족하는 집합이 없을 때는 배열 맨 앞에 –1을 담아 반환하면 됩니다. 예를 들어 n=3, s=13이면 [4,4,5]가 반환됩니다. (자바는 집합이 없는 경우 크기가 1인 배열에 -1을 담아 반환해주세요.) package Programmers.level04; import java.util.Arr..
BackJoon #14890 - 경사로(Runway) https://www.acmicpc.net/problem/14890 삼성SDS 2017 하반기 SW직군 역량테스트 중 기출문제 2번을 풀어봤습니다.생각보다 많이 고전한 문제였습니다...코드가 좀 지저분한데 리팩토링 좀 해야겠네요.. package SamsungTest; import java.util.Scanner; public class Runway { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int l = sc.nextInt(); double [][] ground = new double[n][n]; double [..