본문 바로가기

백준23

[백준]15686치킨배달 c++ https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 1. 각 집과 치킨집과의 거리를 계산한다. 아래 케이스의 경우 집이 6개 치킨집이 5개이므로 30개의 값을 계산한다. 2. 백트래킹 알고리즘을 통해서 치킨집 개수 중에서 m개를 고른다. 이때 1,2,5번을 고르나 2,1,5번을 고르나 똑같기 때문에 오름차순으로 인덱스를 골라서 arr에 넣어준다. 3. 치킨집을 정했으면 각 집마다 정해진 치킨집과의 최소의 거리를 구하고 그 거리.. 2022. 9. 26.
[백준]1062 가르침 c++ https://www.acmicpc.net/problem/1062 1062번: 가르침 첫째 줄에 단어의 개수 N과 K가 주어진다. N은 50보다 작거나 같은 자연수이고, K는 26보다 작거나 같은 자연수 또는 0이다. 둘째 줄부터 N개의 줄에 남극 언어의 단어가 주어진다. 단어는 영어 소문 www.acmicpc.net 처음에는 "anta"와 "tica"사이에 등장하는 알파벳들 사이에서 k-5(psb))개를 뽑으려 했다. 근데 만약에 k가 25이고 "anta"와 "tica"사이에 등장하는 단어가 25보다 작다면 if(depth==psb) 조건문에 걸리지 않는다. 그래서 check를 끝까지 다 방문했을 경우에도 wordCount를 호출했었는데 안되었다. 결국 그냥 A~Z까지 psb개를 뽑아서 단어를 읽을 수.. 2022. 8. 19.
[백준] 2839설탕배달 c++ dp문제이다. 2중 for문을 통해서 풀어줬다. 3키로 봉지와 5키로 봉지와 조합을 해서 만들 수 있는 무게여야하고 최소의 개수의 봉지를 사용해야한다. sugar[3]과 sugar[5]를 1로 초기화 해줬다. 해당 무게를 만들 수 있는 조합을 안에 있는 for문으로 다 검사해주어서 최소의 개수를 sugar[i]에 넣어주었다. #include #include using namespace std; int sugar[5001]; int main() { int n; cin >> n; for (int i = 0; i < 5001; i++) sugar[i] = 5000; sugar[3] = 1; sugar[5] = 1; for (int i = 3; i 2022. 5. 28.
[백준] 1992 쿼드트리 c++ https://www.acmicpc.net/problem/1992 1992번: 쿼드트리 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또 www.acmicpc.net 예전에 풀어봤던 분할 문제하고 비슷해서 금방 풀었다. 1.n*n 크기의 사각형을 검사한다. 2.전부 0이거나 1이면 문자열에 0이나 1을 추가해준다. 3. 아니면 문자열에 (을 추가하고 n/2*n/2 크기의 사각형 4개로 분할해서 사각형을 검사한다. 4. 분할한 사각형을 다 검사하면 )을 문자열에 추가한다. *입력이 문자열로 들어오기 때문에 잘라서 int로 바꿔서 배열에 넣어줘야한다... 2022. 5. 14.