일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- C/C++
- 릿코드
- binary search
- Java
- 딥러닝
- 프로그래밍언어론
- Python
- BFS
- dfs
- spring
- jvm
- leetcode
- 다이나믹프로그래밍
- 알고리즘
- 라인
- C++
- 프로그래머스
- 시애틀
- DP
- 머신러닝
- 라인플러스
- 백트래킹
- Spring Framework
- 벤쿠버
- 모두를 위한 딥러닝
- 스타벅스
- 백준
- 파이썬
- STL
- 스프링 프레임워크
- Today
- Total
목록Algorithm (107)
케이스윔의 개발 블로그
문제 상근이의 여동생 상냥이는 문방구에서 스티커 2n개를 구매했다. 스티커는 그림 (a)와 같이 2행 n열로 배치되어 있다. 상냥이는 스티커를 이용해 책상을 꾸미려고 한다.상냥이가 구매한 스티커의 품질은 매우 좋지 않다. 스티커 한 장을 떼면, 그 스티커와 변을 공유하는 스티커는 모두 찢어져서 사용할 수 없게 된다. 즉, 뗀 스티커의 왼쪽, 오른쪽, 위, 아래에 있는 스티커는 사용할 수 없게 된다.모든 스티커를 붙일 수 없게된 상냥이는 각 스티커에 점수를 매기고, 점수의 합이 최대가 되게 스티커를 떼어내려고 한다. 먼저, 그림 (b)와 같이 각 스티커에 점수를 매겼다. 상냥이가 뗄 수 있는 스티커의 점수의 최대값을 구하는 프로그램을 작성하시오. 즉, 2n개의 스티커 중에서 점수의 합이 최대가 되면서 서로..
문제 정수 X에 사용할 수 있는 연산은 다음과 같이 세가지이다 1. X가 3으로 나누어 떨어지면, 3으로 나눈다.2. X가 2로 나누어 떨어지면, 2로 나눈다.3. 1을 뺀다. 정수 N이 주어졌을 때, 위와 같은 연산 세개를 적절히 사용해서 1을 만들려고 한다. 연산을 사용하는 횟수의 최소값을 출력하시오. 힌트10의 경우에 10->9->3->1로 3번 만에 만들 수 있다. 풀이10이 들어왔을 경우를 보면 2,3 연산을 사용할 수 있지만 3번째 연산을 선택해서 9로 만든다. 만약 2번째 연산을 고르면 10->5->4->2->1 로 연산횟수가 늘어난다. 따라서 n이 값을 재귀적으로 줄여나가는 방법보다 DP를 사용해야한다 점화식을 세워보면....(세운걸 찾아보니)f(n)=0 -> n=1 일때min (f(n/3..
문제 압축되지 않은 문자열 S가 주어졌을 때, 이 문자열 중 어떤 부분 문자열은 K(Q)와 같이 압축할 수 있다. K는 한자리 정수이고, Q는 0자리 이상의 문자열이다. 이 Q라는 문자열이 K번 반복된다는 뜻이다. 압축된 문자열이 주어졌을 때, 이 문자열을 다시 압축을 푸는 프로그램을 작성하시오. 풀이 예제입력이 3 3 ( 5 6 2 ( 7 1 ( 9 ) ) ) 인데 출력은 압축되지 않은 문자열의 길이이다 압축을 하나씩 풀어보면 3 3 ( 5 6 2 ( 7 1 9 ) ) 3 3 ( 5 6 2 7 1 9 7 1 9 ) 3 3 5 6 2 7 1 9 7 1 9 5 6 2 7 1 9 7 1 9 5 6 2 7 1 9 7 1 9 ... 라고 생각해서 답이 29라 생각했는데 예제답이 19여서 어제 하루종일 문제이해를..