본문 바로가기

알고리즘26

백준 20365번 블로그2 (C++) 백준 20365번 https://www.acmicpc.net/problem/20365 20365번: 블로그2 neighbor 블로그를 운영하는 일우는 매일 아침 풀고 싶은 문제를 미리 정해놓고 글을 올린다. 그리고 매일 밤 각각의 문제에 대하여, 해결한 경우 파란색, 해결하지 못한 경우 빨간색으로 칠한 www.acmicpc.net 문제설명 숫자 N을 받고 R,B를 입력받는다 해야할일을 해결한경우 B(파란색) 아닌경우 R(빨간색)으로 페인트로 칠할 때 최소의 값 BBRBRBBR일 때 파란색으로 모두 칠하고 빨간색을 3번 칠하면 총 4번으로 해결가능 접근 1. 페인트로 한번에 칠하기 때문에 연속된 색깔을 하나로 줄여서 배열에 입력 (한번에 칠하기 때문에 BBR, BR같음) ex) BBRBBR 일때 BRBR .. 2021. 4. 23.
백준 1744번 - 수 묶기 (C++,priority_queue) 백준 1744번 https://www.acmicpc.net/problem/1744 1744번: 수 묶기 길이가 N인 수열이 주어졌을 때, 그 수열의 합을 구하려고 한다. 하지만, 그냥 그 수열의 합을 모두 더해서 구하는 것이 아니라, 수열의 두 수를 묶으려고 한다. 어떤 수를 묶으려고 할 때, 위치에 www.acmicpc.net 문제설명 N개의 숫자를 입력받아 수열을 묶어 최대값을 구하는 문제 (묶인 값들은 서로 곱해진다.) ex) input = 1 2 3 4 1+2+(3*4) = 15 접근 1. 음수가 짝수개이면 서로 곱해 양수가 나오므로 최대값이 된다. 2. 양수는 1을 제외한 값들을 큰 수부터 차례대로 곱하면 최대값이 된다. 3. 1은 다른 양수와 곱하는 것보다 따로 더해주는게 더 큰값이 나옴 4... 2021. 4. 22.