1. 문제 https://www.acmicpc.net/problem/2217 2217번: 로프 N(1≤N≤100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하지만 www.acmicpc.net 2. 설명 왜 그리디에 있는지 모르겠는 문제. 최대 중량을 구하는 것이라서 배열을 한번 순환했다. 문제를 읽어보면 해당 로프가 버틸 수 있는 최소 중량 * 로프 수 라는 식이 나온다. 그거 계산해서 최댓값 구하면 된다. 3. 코드 import java.util.Arrays; import java.util.StringTokenizer; import java.io.BufferedRea..
1. 문제 https://programmers.co.kr/learn/courses/30/lessons/42627 코딩테스트 연습 - 디스크 컨트롤러 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를�� programmers.co.kr 2. 설명 우선순위 큐(waiting)를 사용했다. 먼저 jobs를 요청시간로 정렬하고, 현재 시간(time)에서 진행할 수 있는 작업을 waiting에 삽입했다. waiting은 빨리 끝나는 작업 순으로 정렬되어 있기 때문에 하나씩 꺼내서 시간을 추가해줬다. waiting이 비어있을 경우, 현재 진행할 수 있는 작업이 없으므로 time을 1..
1. 문제 https://programmers.co.kr/learn/courses/30/lessons/42842 코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 �� programmers.co.kr 2. 설명 완전탐색 문제라서 모든 경우의 수를 고려했다. 일단 가로 세로 곱과 합은 식을 세워서 선언해뒀고, 하나씩 대입해보면서 곱과 합이 일치하는지 확인하며 풀어나갔다 ! 3. 코드 class Solution { public int[] solution(int brown, int yellow) { int[] answer = new int[2]..
1. 문제 https://programmers.co.kr/learn/courses/30/lessons/42898 코딩테스트 연습 - 등굣길 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = programmers.co.kr 2. 설명 일단 물 웅덩이가 있는 곳은 -1로 표시해줬다 ! 그리고 배열을 쭉 살피면서 길을 찾아갔다. 중학교? 고등학교? 때 배운 길찾기 문제를 코드로 옮기는 듯한 문제였다. 3. 코드 class Solution { public int solution(int m, int n, int[][] puddles) { int answer = 0; ..
1. 문제 https://www.acmicpc.net/problem/9461 9461번: 파도반 수열 문제 오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 � www.acmicpc.net 2. 설명 점화식이 dp[n] = dp[n-1] + dp[n-5] 였다. 또한 n의 범위가 100까지이기 때문에 int형으로 dp를 선언하면 틀렸다고 나온다. 이부분은 항상 헷갈린당; 3. 코드 import java.util.StringTokenizer; import java.io.BufferedReader; import java.io.IOException; import java.io.I..
1. 문제 https://www.acmicpc.net/problem/11727 11727번: 2×n 타일링 2 2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다. www.acmicpc.net 2. 설명 하나씩 해보면서 규칙찾아서 풀었다. 짝수일 때는 그 전의 dp 2배에 +1을 해주어야 했고, 홀수일 때는 전의 dp 2배에 -1을 해주어야 했다. 규칙만 찾으면 쉽게 풀 수 있는 문제 3. 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(Syste..
보통 spring project를 만들면 pom.xml에 servlet 버전이 2.5로 되어있다. 하지만 버전을 올리면 추가적으로 사용할 수 있는 메소드들이 있어서, 좀더 원할한 개발을 위해 3.0이상으로 수정하기도 한다. 그러다보면 에러가 나는데, 에서 Missing artifact javax.servlet:servlet-api:jar:3.1.0 과 같은 에러가 난다. 결론부터 말하면 aprifactId가 잘못되서 그런거다. servlet이 3.0 이상부터 아래와 같이 artifactId가 변경되었다. servlet-api -> javax.servlet-api 따라서 다음과 같이 고치면 된다. javax.servlet javax.servlet-api 3.1.0 provided
1. 문제 https://www.acmicpc.net/problem/10844 10844번: 쉬운 계단 수 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 2. 설명 6번 틀리고 맞은 문제 ㅋㅋㅋㅋㅋㅋ 첫 접근으로 점화식을 dp[n] = dp[n-1] * 2 - 1 로 세웠었는데, 백준 채점기가 틀렸다고 답해주셨다. 다르게 규칙찾는 방법으로, 공간을 늘려서 자릿수를 n까지 늘려가면서 구하는 방식으로 풀었다. 정답을 1,000,000,000으로 나눈 나머지를 출력하라고 하는 부분에서도 막힌게 있었는데, 그 전에는 sum+=dp[n-1][i]를 하고 전체 값을 mod로 나눴었다. 하지만 위 코드와 값 하나하나를 mod로 나눈 값이랑 결과가 다르기 때문에 아..
- Total
- Today
- Yesterday