일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 재귀
- 서울에서경산까지
- 스택
- 26008
- 크로스핏
- 15662
- 브루트포스
- DP
- dart
- spring boot
- 재귀함수
- Crossfit
- 삼성
- 4811
- BOJ14889
- Python
- 동적프로그래밍
- 14863
- 백준
- 그리디
- Flutter
- 해시해킹
- 1781
- C++
- 1로만들기2
- 회전하는큐
- 15353
- D1
- BOJ
- sw expert academy
- Today
- Total
목록Coding Test/C++ (56)
곧죽어도 콛잉

https://www.acmicpc.net/problem/14890 14890번: 경사로 첫째 줄에 N (2 ≤ N ≤ 100)과 L (1 ≤ L ≤ N)이 주어진다. 둘째 줄부터 N개의 줄에 지도가 주어진다. 각 칸의 높이는 10보다 작거나 같은 자연수이다. www.acmicpc.net 1) 2차원 배열을 2개 만든다. 한가지는 대칭이동 시켜서 만든다. 2) 지금까지 지나온 같은 높이의 칸의 개수를 세준다.(cnt) 3) 만약 다른 높이의 칸을 만난다면, 3-1) cnt >= L 이고 +1 칸 차이이면 cnt = 1로 해준다.(오르막경사) 3-2) cnt >= 0 이고, -1 칸 차이이면, cnt = -L+1로 해준다 (내리막 경사) 3-3) 위에 해당하지 않으면 break 해주고 해당 열/행의 탐색을..

https://www.acmicpc.net/problem/1987 1987번: 알파벳 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으 www.acmicpc.net 1) 1-1) 만약 채워졌다면, 그 숫자를 확인한 후 개수를 세준다. 1-2) 만약 안채워졌다면, 사각형을 9등분한 후 각 사각형마다 다시 1) 과정을 반복한다. 이 문제도 역시 아래 문제를 풀고오면 이해가 더 쉬워진다!! https://die-will-coding.tistory.com/38#comment14785555 [그래프 / BOJ 1325 / C++] 효율적인 해킹 https://..

https://www.acmicpc.net/problem/17471 17471번: 게리맨더링 선거구를 [1, 4], [2, 3, 5, 6]으로 나누면 각 선거구의 인구는 9, 8이 된다. 인구 차이는 1이고, 이 값보다 더 작은 값으로 선거구를 나눌 수는 없다. www.acmicpc.net 1) 구역을 2가지로 나누는 경우를 생각한다. 2) 1)에서 찾는 경우 중 같은 선거구끼리 인접시킬 수 있는지 확인한다. 3) 2)의 조건을 만족하는 경우 중, 두 개의 선거구 인구수의 차이가 최소가 되는 값을 찾는다. 어려웠다,,,, 생각하기 너무 힘들었던 것 같았다 dfs를 pair로 리턴해서 써먹는다면 좀 과정이 쉬워졌을 텐데 여러가지로 고생했다;; dfs 복습 필수..! 이 문제의 핵심 로직은 1) 우선 구역들..

https://www.acmicpc.net/problem/1285 1285번: 동전 뒤집기 첫째 줄에 20이하의 자연수 N이 주어진다. 둘째 줄부터 N줄에 걸쳐 N개씩 동전들의 초기 상태가 주어진다. 각 줄에는 한 행에 놓인 N개의 동전의 상태가 왼쪽부터 차례대로 주어지는데, 앞면이 위 www.acmicpc.net 1) 0과 1로 이루어진 이진수라고 생각한다. 2) 모든 행을 뒤집는 경우를 백트래킹으로 찾아본다. 3) 각각의 경우의 수마다 뒤집어야할 열들을 찾아본다. 4) T의 개수가 최소가 되는 순간을 찾는다. 진짜 생각하는게 어렵다.......... 근데 감만잡으면 확실히 이해할 수 있다. 일단 문제를 이해해보자!! 딱 보면은 열과 행으로 나누어서 0번째 열부터 N-1번째 열까지, 각각의 열을 뒤집었..

https://www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net 1) while(1)을 통해 계속해서 인구 이동을 체크하는 로직을 생각한다. 만약 인구이동이 발생됐다면, day++가 되고 그게 아니라면 종료하고 즉시 day를 출력한다. 2)모든 칸에 대한 인구이동을 dfs로 확인한다. 3)발생한 인구이동에 대한 연합의 인구수와 연합들의 위치를 저장하여, 평균을 구해 인구수를 맞춘다. 이때, 연합이 단 한개라면, 그 즉시 while문을 종료한다. ..

https://www.acmicpc.net/problem/19942 19942번: 다이어트 식재료 N개 중에서 몇 개를 선택해서 이들의 영양분(단백질, 탄수화물, 지방, 비타민)이 일정 이상이 되어야 한다. 아래 표에 제시된 6가지의 식재료 중에서 몇 개를 선택해서 이들의 영양분의 각 www.acmicpc.net 1) 비트마스킹으로 식재료끼리의 조합을 구한다. 2) 구한 조합의 각각의 영양성분들끼리의 합이 최소 영양성분을 넘기는지 확인한다. 3) 최소 영양 성분을 넘긴다면, 이때의 비용과 식재료 조합을 vector에 저장한다. 4) vector을 sort로 오름차순 정렬하여 가장 첫번째 조합을 출력한다. 문제를 읽어보면 어? 이거 조합아닌가? 라는 생각이 든다. 하지만 조합으로 풀면 매우 어려운 선택이 ..