본문 바로가기

알고리즘/백준 Baekjoon19

백준 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.
백준 2812번 - 크게만들기 (C++,deque) 백준 2812번 https://www.acmicpc.net/problem/2812 2812번: 크게 만들기 N자리 숫자가 주어졌을 때, 여기서 숫자 K개를 지워서 얻을 수 있는 가장 큰 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 문제설명 N자리 숫자를 입력받고 K개를 지워 가장 큰수를 구하는 문제 (숫자의 위치를 바꿀 수 없음) 접근 처음 접근할 때에는 문제를 잘못 이해하여 입력받은 숫자의 순서를 바꿔서 정렬로 풀었다. (결과: 실패) 틀린이유를 찾다가 고민 끝에 문제를 제대로 이해하여 deque를 사용하여 구현 코드 코드 // 헤더파일은 여러가지 문제를 풀기 편하게 그냥 고정해둠,, #include #include #include #include #include #include #.. 2021. 4. 21.