썸네일 [백준 2812] 크게 만들기 2812번: 크게 만들기 N자리 숫자가 주어졌을 때, 여기서 숫자 K개를 지워서 얻을 수 있는 가장 큰 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 1. 문제 요약 - N과 K (1 ≤ K 0 이면 다음 수를 입력받는다 2-2. count0 이면 그 숫자로 교체한다 만들다보니 배열보단 자료구조를 활용하는 것이 더 구현이 쉬울 것 같다고 생각했다 따라서 큐를 사용하기로 했다 [아이디어-3] - '[아이디어-2]의 어려움 및 해결' 의 해결방법 적용, 아래를 (0 예제입력 3번에서 틀린 값이 출력 되었다 10 4 /n 4177252841 를 입력 받았을 때 775841이 나와야 하지만 , 772841이 나온다 앞자리 수를 온전히 최대로 맞추는 것에 실패한 것인데, 이는 뒤에서 지금 삭제하..
썸네일 [백준 15724] 주지수 15724번: 주지수 네모 왕국의 왕인 진경대왕은 왕국의 영토를 편하게 통치하기 위해서 1X1의 단위 구역을 여러 개 묶어서 하나의 거대 행정구역인 주지수(州地數, 마을의 땅을 셈)를 만들 예정이다. 진경대왕은 www.acmicpc.net 1. 문제 요약 - 제한시간 2초 - N x M 사이즈의 단위구역 내에 각 값을 입력받고 - 이어서 시작행, 시작열, 끝행, 끝열을 입력받는다 해당 범위 내의 사람들의 수의 합을 구하는 문제이다 2. 아이디어 (문제 접근법) [아이디어-1] - int answer 를 만들어 범위 내의 합을 저장한다 - for 시작행-1 ~ 끝행-1 for 시작열-1 ~ 끝열-1 answer += 해당 위치 값 [아이디어-2] - 시간을 줄이는 방법 1. (0, 0) 에서 시작하는 범위..
썸네일 [백준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 1. 문제 요약 - 물품의 수 N 만큼 각각 무게 W와 가치 V를 가진 물품을 입력받는다 - 준서가 견딜 수 있는 무게를 K라고 할 때 가능한 가장 높은 가치의 물건을 담는 경우의 가치를 출력 2. 아이디어 (문제 접근법) [아이디어-1] - T 인스턴스를 생성해 저장할 배열 tArr[N] 를 만든다 - 각 무게에서의 최고 가치를 저장할 배열 maxValue[K+1] 를 만들어둔다 - tList 순..
썸네일 [백준 5557] 1학년 5557번: 1학년 상근이가 1학년 때, 덧셈, 뺄셈을 매우 좋아했다. 상근이는 숫자가 줄 지어있는 것을 보기만 하면, 마지막 두 숫자 사이에 '='을 넣고, 나머지 숫자 사이에는 '+' 또는 '-'를 넣어 등식을 만들며 놀 www.acmicpc.net 1. 문제 요약 - 제한시간 1초 - 0~9 범위의 숫자 3~100 개가 주어지고 오른쪽 끝의 숫자의 앞에 = 를 붙여 답으로, 그 외의 숫자들 사이에 '+' 나 '-' 를 붙여 올바른 등식을 만들어야 한다 - '+' 혹은 '-' 만 사용하므로 왼쪽에서 오른쪽 순으로만 확인하면 된다 - 중간에 값이 0~20 범위를 벗어나면 올바르지 않은 공식으로 취급받는다 2. 아이디어 (문제 접근법) [아이디어-1] - 태블릿 그림을 통해 풀었다 - arr[N] 에 입..
썸네일 [백준 1695] 팰린드롬 만들기 1695번: 팰린드롬 만들기 앞에서 뒤로 보나, 뒤에서 앞으로 보나 같은 수열을 팰린드롬 이라고 한다. 예를 들어 {1}, {1, 2, 1}, {1, 2, 2, 1}과 같은 수열은 팰린드롬 이지만, {1, 2, 3}, {1, 2, 3, 2} 등은 팰린드롬이 아니다. 한 수열 www.acmicpc.net 1. 문제 요약 - 제한시간 2초 - 수열을 입력받고, 최소 몇 개의 숫자를 입력받으면 팰린드롬이 되는지 알아내는 문제 2. 아이디어 (문제 접근법) [아이디어-1] - 참조 링크의 풀이를 태블릿 그림으로 이해하며 풀어보았다 - 입력받은 수열을 기록하기 위해 int[] arr = new int[N] 생성 - 다른 DP 문제들과 마찬가지로 연산 결과를 배열에 담기 위해 int[][] DPArr = new i..
썸네일 [백준 11727] 2xn 타일링 2 11727번: 2×n 타일링 2 2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다. www.acmicpc.net 1. 문제 요약 위 그림과 같이 주어진 2 x n 크기의 공간을 세 가지 종류의 타일로 채우는 방법에는 몇 가지가 있는지 알아내는 문제 2. 아이디어 - 처음 아이디어 - 2Xn 직사각형을 1X2, 2X1, 2X2 타일로 채우는 방법의 수 - 1X2나, 2X2나 둘 다 가로 2칸을 차지한다 [1] - 가로의 길이 n을 길이 1과 2로 채울 수 있는 모든 경우를 구한다 [2] - 길이 2로 채우는 경우의 수는 1X2타일 두개로 채우는 경우와 2X2타일 하나로 채우는 경우 두 가지만 있다 - 길이..