전체 글(45)
-
백준 2630번: 색종이 만들기 (C++)
https://www.acmicpc.net/problem/2630 2630번: 색종이 만들기 첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다. www.acmicpc.net 풀이 1780 종이의 개수와 거의 비슷한 문제. paper[2] 에 각각의 종이의 개수를 넣어주었다. partition 함수를 보면, 종이를 전부 탐색하고 가장 왼쪽 상단의 숫자와 다른 숫자가 있을 때 chk를 체크해주었다. chk에 따라 전체가 같은 색이면 paper[]의 숫자를 추가시켰다. 그리고 하나라도 다른 부분이 있을 경우 4가지 부분으로 나누어서 똑같이 반복 ..
2023.01.26 -
백준 1780번: 종이의 개수 (C++)
https://www.acmicpc.net/problem/1780 1780번: 종이의 개수 N×N크기의 행렬로 표현되는 종이가 있다. 종이의 각 칸에는 -1, 0, 1 중 하나가 저장되어 있다. 우리는 이 행렬을 다음과 같은 규칙에 따라 적절한 크기로 자르려고 한다. 만약 종이가 모두 같은 수 www.acmicpc.net 풀이 9개 부분으로 분할해야 하는 분할 정복 문제. -1, 0, 1 - 3가지 종이가 있어서 cnt[3] 을 선언해서 각각 넣어주려고 한다. partition 함수를 보면, 종이를 전부 탐색하고 가장 왼쪽 상단의 숫자와 다른 숫자가 있을 때 tmp_cnt를 체크해주었다. tmp_cnt에 따라 전체가 같은 색이면 cnt[ paper + 1 ]의 숫자를 추가시켰다. 그리고 하나라도 다른 부..
2023.01.26 -
백준 24460번: 특별상이라도 받고 싶어 (C++)
https://www.acmicpc.net/problem/24460 24460번: 특별상이라도 받고 싶어 첫 번째 줄에는 정수 $N$이 주어진다. (단, $N = 2^m$, $0 \le m \le 10$, $m$은 정수) 두 번째 줄부터 $N$개 줄의 $i$번째 줄에는 $i$번째 줄에 있는 의자에 적힌 추첨번호가 주어진다. 각 줄에는 $N$개의 추첨 www.acmicpc.net 풀이 분할 정복 문제. 개념이 이해가 안되서 유형 부수기 중. 사실상 재귀 문제인데 어떻게 설계하는 지가 중요한 듯 하다. 4가지 의자 중에 2번째로 숫자가 작은 의자를 골라야해서 ans[4] 배열에 4가지 분할 된 함수의 값을 넣고 ans[1]을 리턴하면 재귀적으로 ans[4] 배열에는 2번째로 작은 의자만 담기게 된다. 사실 ..
2023.01.26 -
백준 2920번: 음계 (C++)
https://www.acmicpc.net/problem/2920 2920번: 음계 다장조는 c d e f g a b C, 총 8개 음으로 이루어져있다. 이 문제에서 8개 음은 다음과 같이 숫자로 바꾸어 표현한다. c는 1로, d는 2로, ..., C를 8로 바꾼다. 1부터 8까지 차례대로 연주한다면 ascending, 8 www.acmicpc.net 풀이 단순 구현 문제. 솔브닥 무슨 훈장 같은거 있어서 그거 받으려고 풀었다. 조건이 2개 밖에 없길래 귀찮아서 통으로 문자열로 입력받은 후 조건에 맞게 출력시켜주었다. 이래도 되나... 허허 전체 코드 #include #include using namespace std; int main() { ios_base::sync_with_stdio(false); ..
2023.01.26 -
백준 11582번: 치킨 TOP N (C++)
https://www.acmicpc.net/problem/11582 11582번: 치킨 TOP N 인하대 주변 치킨칩의 맛의 정도를 측정해 수치화하는 동아리 C.T.P(Chicken Tastes Perfect)의 회장 민호는 치킨집의 맛의 수치를 감소하지 않는 순으로 정렬을 하고 싶었다. 하지만 치킨집이 너무 많 www.acmicpc.net 풀이 분할 정복 문제, 합병 정렬 알고리즘의 중간부분을 출력하는 문제. 알고리즘 수업때 수도코드 보고 구현했던 적이 있는데 막상 해보라니까 못해서 찾아봤다. 개어렵네 진짜 ㅡㅡ 내가 한 건 없고 그냥 코드 열심히 분석하면서 이해함..ㅜ 전체 코드 #include #include #include using namespace std; int N, k; vector arr..
2023.01.26 -
백준 8595번: 히든 넘버 (C++)
https://www.acmicpc.net/problem/8595 8595번: 히든 넘버 첫째 줄에 단어의 길이 n (1 ≤ n ≤ 5,000,000)이 주어진다. 둘째 줄에는 단어가 주어진다. 단어는 알파벳 대/소문자와 숫자(0-9)로 이루어져 있다. www.acmicpc.net 풀이 substr 사용법 잊어버려서 엄청 실패했던 문제. substr(시작점, 시작점으로 부터 갯수) - 기억하자. 구현 방식은 간단하다. 문자열로 입력을 받고 for문을 돌다가 숫자인 부분이 있으면 그 인덱스(idx)를 저장, 그 다음 for문에서 idx + 1 부터 탐색. 숫자가 아닌 부분이 나타나면 substr 로 잘라서 tmp에 넣고 6자리가 넘는 지 확인 후, 첫 번째 for문이 중복으로 탐색하지 않기 위해 i 에 j..
2023.01.26