쾌락없는 책임 (공부)/알고리즘 문제풀이
-
백준 1103 게임 - C++쾌락없는 책임 (공부)/알고리즘 문제풀이 2021. 5. 6. 19:05
1103 : www.acmicpc.net/problem/1103 #include #include #include #include #define MAX 51 using namespace std; int n, m; string s; int arr[MAX][MAX]; int ans[MAX][MAX]; bool visit[MAX][MAX]; int goX[4] = { 0, 0, 1, -1 }; int goY[4] = { 1, -1, 0, 0 }; int search(int x, int y){ // 범위를 벗어나거나 구멍이면 실패 if(x = n || y = m || arr[x][y] == -1) return 0; // 사이클일 경우 무한대, -1, exit로 프로레스 종료 i..
-
백준 14719 - 빗물, C++쾌락없는 책임 (공부)/알고리즘 문제풀이 2021. 5. 4. 20:44
14719 : www.acmicpc.net/problem/14719 #include #include using namespace std; int w, h, l, r, answer = 0; int height[501]; int main(){ scanf("%d %d", &h, &w); for(int i = 0; i < w; i++) scanf("%d", &height[i]); for(int i = 1; i < w-1; i++) { l = 0; r = 0; for (int j = 0; j < i; j++) l = max(l, height[j]); for (int j = i + 1; j < w; j++) r = max(r, height[j]); answer += max(0, min(l, r) - height[i..
-
프로그래머스 Level3 - 등굣길 C++쾌락없는 책임 (공부)/알고리즘 문제풀이 2021. 5. 1. 10:52
코딩테스트 연습 - 등굣길 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = programmers.co.kr #include #include #include #define mod 1000000007 using namespace std; int solution(int m, int n, vector puddles) { int answer = 0; // m : 가로, n : 세로, puddles : 물이 담긴 곳 long long arr[m+1][n+1]; memset(arr, 0, sizeof(arr)); // 초기화는 (0,0), (0,1), (1,0) 은 1..
-
백준 9019 DSLR - C++, 큐를 이용한 너비 우선 탐색쾌락없는 책임 (공부)/알고리즘 문제풀이 2021. 4. 30. 13:20
9019 : www.acmicpc.net/problem/9019 #include #include #include #include using namespace std; int t, a, b, cur, nextNum; queue q; bool visit[100001]; string bfs(){ queue q; q.push(make_pair(a, "")); visit[a] = true; while(!q.empty()){ int cur = q.front().first; string s = q.front().second; q.pop(); if(cur == b) return s; // D : 2n mod 10000 nextNum = (2 * cur) % 10000; if(!visit[nextNum]){ visit[..
-
백준 2263 트리의 순회 - C++쾌락없는 책임 (공부)/알고리즘 문제풀이 2021. 4. 28. 11:31
백준 2263 : www.acmicpc.net/problem/2263 #include #define max 100001 using namespace std; int n; int temp[max], inOrder[max], postOrder[max]; void PreOrder(int inStart, int inEnd, int postStart, int postEnd){ if(inStart > inEnd || postStart > postEnd) return; // Pre는 Root Letf Right 순 printf("%d ", postOrder[postEnd]); // in에서 root가 어디인지 찾기 int r = temp[postOrder[postEnd]]; // 먼저 왼쪽 // r-inStart는 ..
-
프로그래머스 Level3 - 정수 삼각형, C++쾌락없는 책임 (공부)/알고리즘 문제풀이 2021. 4. 26. 12:49
#include #include #include using namespace std; int arr[501][501]; // 다음 외부 벡터에서 오른쪽 왼쪽 위치를 골라야 한다 // 인덱스가 같은게 왼쪽 1큰게 오른똑이다 // arr을 통해 dp int solution(vector triangle) { int answer = 0; int n = triangle.size(); // 꼭짓점 값 answer = arr[0][0] = triangle[0][0]; for(int i = 1; i < n; i++){ for(int j = 0; j
-
프로그래머스 Level 2 - 가장 큰 수 C++쾌락없는 책임 (공부)/알고리즘 문제풀이 2021. 4. 10. 10:44
코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr #include #include #include using namespace std; bool compare(string a, string b){ return a+b > b+a; } string solution(vector numbers) { string answer = ""; vector v; for(int i = 0; i < numbers.size(); i++) v.push_back(to_str..
-
프로그래머스 Level2 - 구명보트 C++쾌락없는 책임 (공부)/알고리즘 문제풀이 2021. 4. 8. 20:37
코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr #include #include #include using namespace std; int solution(vector people, int limit) { int answer = 0, count = 0; sort(people.begin(), people.end()); // people.size() > count // count가 가벼운 사람들 중 탄 사람 수인데 size==count가 된다면 // 사람들이 이미 다 탔다는 이야기가 ..