본문 바로가기

알고리즘 풀이

(50)
백준 2455번 지능형 기차 https://www.acmicpc.net/problem/2455 #include #include int d[4] = {0, };using namespace std;int main(){ int in[4] = {0, }, out[4] = {0, }; int idx = 0, result = 0; for (int i = 0 ; i
백준 15685번 드래곤 커브 https://www.acmicpc.net/problem/15685 N번째 세대에서 방문할 수 있는 (y, x) 를 구하는 방법은 아래와 같다. 1. N-1 번째 세대의 (y, x)에선 N번째 세대에서 쓰일 커브의 방향을 스택에 push 한다. 이후, N번째 세대에선2. N-1 번째의 마지막 지점을 시작으로 하여 스택에 쌓아둔 커브의 방향대로 (y, x) 를 방문한다. 이를 연속적으로 반복하여 각 세대에서 그려질 수 있는 점들을 방문하고, 마지막엔 특정 (x, y)를 기준으로 3방향을 검사하여 직사각형의 갯수를 구하였다. #include #include #include #define MAX 100#define RIGHT 0#define UP 1#define LEFT 2#define DOWN 3using ..
백준 1931번 회의실 배정 https://www.acmicpc.net/problem/1931 위 알고리즘은 그리디 알고리즘의 기본이다.자세한 설명은https://www.zerocho.com/category/Algorithm/post/584ba5c9580277001862f188에 더 잘 나와있다. #include #include #include #include using namespace std;int main(){ int n, start, end; vector v; scanf("%d", &n); for (int i = 0; i
백준 9012번 괄호 https://www.acmicpc.net/problem/9012 #include #include #include #pragma warning(disable:4996)using namespace std;int main(void) {int test_case = 0;char str[51] = { 0, };scanf("%d\n", &test_case);for (int i = 0; i
백준 2805번 나무자르기 https://www.acmicpc.net/problem/2805 #include #include #include #pragma warning(disable:4996)#define MAX 1000000using namespace std;long long N, M;long long tree[MAX + 1];int main(){scanf("%lld %lld", &N, &M);for (int i = 0; i
백준 2512번 예산 https://www.acmicpc.net/problem/2512 #include #include #pragma warning(disable:4996)#define MAX 10000using namespace std;int numOfCity;int city[MAX + 1];int main(){int sum = 0, result = 0, i = 0;scanf("%d", &numOfCity);for (int i = 0; i
백준 1259번 팰린드롬 수 https://www.acmicpc.net/problem/1259 #include #include using namespace std;bool isPalindrome(char *s) { int len = strlen(s); for (int idx = 0 ; idx
백준 7576번 토마토 https://www.acmicpc.net/source/2802084 #include #include #pragma warning(disable:4996)using namespace std;const int dx[4] = {-1, 0, 0, 1};const int dy[4] = { 0, -1, 1, 0 };int box[1001][1001];int visit[1001][1001];int N, M;inline bool inRange(int x, int y) {return x >= 0 && x = 0 && y