분류 전체보기(581)
-
[알고리즘] 2828번: 사과 담기 게임
0. 문제 2828번: 사과 담기 게임 상근이는 오락실에서 바구니를 옮기는 오래된 게임을 한다. 스크린은 N칸으로 나누어져 있다. 스크린의 아래쪽에는 M칸을 차지하는 바구니가 있다. (M> n >> m >> j; for(int i=0; i> apple; apple--; bool goLeft = apple < pos; if(goLeft){ ret += abs(apple - pos); pos = apple; }else{ bool notMove = (apple - pos) < m; if(notMove) continue; int distance = apple - pos - m +1; ret += distance; pos += distance; } } cout
2023.09.05 -
[알고리즘] 2910번: 빈도 정렬
0. 문제 2910번: 빈도 정렬 첫째 줄에 메시지의 길이 N과 C가 주어진다. (1 ≤ N ≤ 1,000, 1 ≤ C ≤ 1,000,000,000) 둘째 줄에 메시지 수열이 주어진다. www.acmicpc.net 1. 문제 이해 정렬에는 두 가지 정보가 필요함. 숫자의 빈도 c++의 int는 4바이트로 –2,147,483,648 ~ 2,147,483,647 값을 가진다. (1 ≤ N ≤ 1,000, 1 ≤ C ≤ 1,000,000,000) 숫자의 등장 순서 “숫자”에서 “등장 순서”를 얻을 수 있어야 함. vector와 map 두 개를 사용하기. 또는 vector에 tuple을 넣고 커스텀 함수로 정렬하기. tuple 생성하고 정렬하기. → 빈도는 내림차순, 순서는 오름차순 정렬임. → 커스텀 정렬 함..
2023.09.05 -
[알고리즘] 1992번: 쿼드트리
0. 문제 1992번: 쿼드트리 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또 www.acmicpc.net 1. 문제 이해 왼쪽 위, 오른쪽 위, 왼쪽 아래, 오른쪽 아래, 이렇게 4개의 영상으로 나누어 압축. (0(0011)(0(0111)01)1) 왼쪽 위, 오른쪽 위, 왼쪽 아래, 오른쪽 아래 모두가 같은 값이 될 때까지 4등분 한다. → 재귀적으로 호출한다. 2. 제출 // 백준 1992번 퀴드트리 #include #include using namespace std; const int max_n = 64; const int dy[] = {..
2023.09.03 -
[알고리즘] 3986번: 좋은 단어
0. 문제 3986번: 좋은 단어 이번 계절학기에 심리학 개론을 수강 중인 평석이는 오늘 자정까지 보고서를 제출해야 한다. 보고서 작성이 너무 지루했던 평석이는 노트북에 엎드려서 꾸벅꾸벅 졸다가 제출 마감 1시간 전에 www.acmicpc.net 1. 문제 이해 예제 입력 1 3 ABAB AABB ABBA 예제 출력 1 2 예제 입력 2 3 AAA AA AB 예제 출력 2 1 단어의 길이가 홀수면 무조건 나쁜 단어다. 사용된 A와 B의 개수도 짝수여야 한다. A든 B든 첫 번째 글자로 단어를 잘랐을 때 모든 조각은 1번과 2번을 만족해야 한다. → split 활용하기 2. 제출 가. 틀렸습니다. // 백준 3986번: 좋은 단어 #include #include using namespace std; int..
2023.09.03 -
정처기 합격
2023년 정기 기사 2회 정보처리기사 합격! 다행이다... 두 번은 없었는데.
2023.09.01 -
[알고리즘] 2583번: 영역 구하기
0. 문제 2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오 www.acmicpc.net 1. 문제 이해 100 * 100 배열을 그린다. K개의 직사각형을 그린다. for(첫번째 꼭짓점의 y ~ 두 번째 꼭짓점의 y) 안에 for(첫 번째 꼭짓점의 x ~ 두 번째 꼭짓점의 x) 이중 for문을 사용한다. 각각의 연결된 컴포넌트들의 넓이를 구해서 저장한다. dfs로 연결된 컴포넌트의 수를 센다. 2. 제출 가. 실패 // 백준 2583: 영역 구하기 #include #include #include using namesp..
2023.09.01 -
[알고리즘] 2468번: 안전 영역
0. 문제 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net 1. 문제 이해 연결된 컴포넌트의 수가 최대가 되는 높이 값을 구하는 문제 최댓값을 구하기 위한 방법 → 모든 경우의 수를 실행하고 비교한다? 2. 제출 가. 실패 //백준 2468번: 안전 영역 #include #include using namespace std; const int max_n = 100; int n, max_h=0, ret=0; int a[max_n][max_n], visited[max_n][max_n]; int dy[] = {-1,0,1,..
2023.09.01 -
[알고리즘] 1012번: 유기농 배추
0. 문제 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 1. 문제 이해 주어진 맵에서 덩어리의 개수를 알아내면 된다. 이런 덩어리를 연결된 컴포넌트(connected component)라고 한다. 연결된 노드를 탐색한다. 그리고 배제한다. → DFS, BFS 사용. https://ko.wikipedia.org/wiki/플러드_필 2. 제출 가. a[][], visited[][]를 전역 변수로 선언 //백준 1012: 유기농 배추 #include #include // memeset using namespace std; ..
2023.08.31