![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/M1r0k/btqFbCzGCR7/jwkorlL7Zia2STeeF9g4Lk/img.png)
1. 문제 https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 2. 설명 오름차순으로 정렬해서 더했다. 3. 코드 import java.util.StringTokenizer; import java.util.Arrays; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/V01YF/btqE9Kx2G3o/WBTdkycLjv9n34xBxo1Nu1/img.png)
1. 문제 https://programmers.co.kr/learn/courses/30/lessons/42883 코딩테스트 연습 - 큰 수 만들기 programmers.co.kr 2. 설명 number의 첫번째 인덱스로부터 인덱스 + k 까지 최댓값을 찾아서 answer에 삽입하는 방식으로 풀었다. 반복을 진행하는 것은 number 길이 - k 까지만 진행하면 된다. j의 시작을 idx로 잡은 이유는 이미 선택한 최댓값을 지나치기 위해서! 탐욕법은 아직 어렵다. 3. 코드 class Solution { public String solution(String number, int k) { StringBuilder answer = new StringBuilder(); int idx = 0; char max; ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cKGZpI/btqE74Qu9R2/UVxUTmoFpG3RaozHovclgk/img.png)
1. 문제 https://www.acmicpc.net/problem/12865 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000) www.acmicpc.net 2. 설명 Knapsack Problem 알고리즘이라고 유명한 DP 문제이다. 점화식은 아래와 같다. weight[i]j 일 때는 dp[i][j] = dp[i-1][j] 이다. 3. 코드 import java.util.StringTokenizer; import java.io.BufferedReader; import jav..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cz2sMs/btqE6MWfZKw/B6qeWUxkAGmIQPXW8GgT1K/img.png)
1. 문제 https://www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로�� www.acmicpc.net 2. 설명 벽 부수는거 때문에 힘들었던 문제... 방문여부와 큐에 벽(wall)을 추가해서 풀었다. wall은 최대 1까지 될 수 있고, 0일 때만 하나 부술 수 있도록 함. 어렵당 3. 코드 import java.util.Queue; import java.util.StringTokenizer; import java.io.BufferedReader; impo..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/dhufSW/btqE31NWnFA/K4tVJss4YV2jUlflQkqu2K/img.png)
1. 문제 https://programmers.co.kr/learn/courses/30/lessons/42583 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일 차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 트럭은 1초에 1만큼 움직이며, 다리 길이�� programmers.co.kr 2. 설명 리스트사용해서 풀었다! 리스트 대신 큐 사용해도 될 것같다. 3. 코드 import java.util.ArrayList; class Solution { public int solution(int bridge_length, int weight, int[] truck_weights) { int answer = 0; Array..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/oYHRF/btqEXJyhQdB/qFFZNMF8SMPCYVuttHSYgK/img.png)
1. 문제 https://programmers.co.kr/learn/courses/30/lessons/12973 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr 2. 설명 stack 사용했다! stack에 같은 문자가 있으면 pop해주고 아닐경우는 push했다. stack size가 0이 되면 다 제거됬다는 뜻으로 1을 return 3. 코드 import java.util.Stack; class Solution { public int solution(String s) { Stack stack = ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bsOyuH/btqEUqlNDn5/KZIgzxZwOQx7Nk2zZrXmdk/img.png)
1. 문제 https://programmers.co.kr/learn/courses/30/lessons/43105 코딩테스트 연습 - 정수 삼각형 [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30 programmers.co.kr 2. 설명 아래로 합을 계산해 나가는 방식으로 풀었다. 2가지로 나뉘는데 이 경우에는 어차피 한가지 경우의 수들 밖에 없어서 j==0일 때랑 j==i일 때로 나눠서 구했고 나머지는 합이 더 큰 부분으로 내려가도록 구했다. ↑나머지 부분들 그러면 결과가 7 10 15 18 16 15 20 25 20 19 24 30 27 26 24 이렇게 나오고, 마지막 배열에서 최댓값을 구해서 답을 구했다. 3. 코드 import java.ut..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/TJGB7/btqETnbzRwf/eP5lMhBZDyyHBBKf7nS4fK/img.png)
1. 문제 https://programmers.co.kr/learn/courses/30/lessons/43104 코딩테스트 연습 - 타일 장식물 대구 달성공원에 놀러 온 지수는 최근에 새로 만든 타일 장식물을 보게 되었다. 타일 장식물은 정사각형 타일을 붙여 만든 형태였는데, 한 변이 1인 정사각형 타일부터 시작하여 마치 앵무조개�� programmers.co.kr 2. 설명 그냥 규칙찾아서 재귀로 풀어버렸는데 알고보니 피보나치 문제였다 ㅋㅋ... 피보나치로 따로 다시 풀었다 ㅋㅋ 3-1. 코드 - 제멋대로 규칙 class Solution { static long answer; public long solution(int N) { answer = 4; // N은 1이상의 자연수 round(N, 1, 1,..
- Total
- Today
- Yesterday