Koder / 박성훈
article thumbnail
백준 BOJ 11651 - 좌표 정렬하기 2
알고리즘/백준 BOJ 2020. 12. 29. 09:00

얘도 머 바로 전 글과 별반 다를게 없다. 설명은 바로전글 가서 들어도 될 거 같다. https://www.acmicpc.net/problem/11651 11651번: 좌표 정렬하기 2 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net #include #include #include #include using namespace std; struct POS{ int x; int y; };// 가입순서 - 나이 - 이름 vector v; bool compare(POS a, POS b){ if..

article thumbnail
백준 BOJ 10814 나이순 정렬
알고리즘/백준 BOJ 2020. 12. 29. 08:59

그냥 std 쓰자 편해서 좋았다. ​ https://www.acmicpc.net/problem/10814 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net compare함수만 따로 잘 작성해주고 구조체 하나 짜주면 쉽게 풀 수 있다. #include #include #include #include using namespace std; struct JUDGE{ int priority; int age; char name[101]; };// 가입순서 - 나이 - 이름 vector v; bool compare(JUDGE a,..

article thumbnail
백준 BOJ 1717 - 집합의 표현
알고리즘/백준 BOJ 2020. 12. 28. 15:03

간단한 유니온파인드 문제 유니온파인드에 관해서는 여름학교 수업 끝나고 정리하면서 글을 하나 작성할 계획이다. 이걸 보시는 분들은 아마 내 블로그에 유니온파인드 관련 글이 있을거다. ​ https://www.acmicpc.net/problem/1717 1717번: 집합의 표현 첫째 줄에 n(1 ≤ n ≤ 1,000,000), m(1 ≤ m ≤ 100,000)이 주어진다. m은 입력으로 주어지는 연산의 개수이다. 다음 m개의 줄에는 각각의 연산이 주어진다. 합집합은 0 a b의 형태로 입력이 주어진다. 이는 www.acmicpc.net 유니온파인드는 간단히 말하자면 자신의 부모만을 기억하는 구조다 그래서 부모 노드가 자기 자신인 노드의 경우에는 자기자신이 하나의 루트노드가 되는 것이고, 두 집합끼리 합할 때..

article thumbnail
백준 BOJ 2096 - 내려가기
알고리즘/백준 BOJ 2020. 12. 28. 14:58

처음으로 메모리 초과가 나온 문제. 이제부턴 메모리도 신경써서 풀어야겠다. ​ https://www.acmicpc.net/problem/2096 2096번: 내려가기 첫째 줄에 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 숫자가 세 개씩 주어진다. 숫자는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 중의 하나가 된다. www.acmicpc.net 처음에는 배열을 maxdp를 50만정도, mindp를 50만, 입력도 50만으로 엄청많이 만들어서 메모리 초과가 나왔으나, 어디선가 들었던 기법을 통해 메모리를 대폭 절감해 통과할 수 있었던 문제이다. #include #define MIN(a, b) (((a) < (b)) ? (a) : (b)) #define MAX(a, b) (((..

article thumbnail
백준 BOJ 2169 - 로봇 조종하기
알고리즘/백준 BOJ 2020. 12. 28. 14:56

2차원 배열에서의 Dp는 너무 어려운 거 같다 ㅠ 익숙해질때까지 많이 풀어봐야겠다.... ​ https://www.acmicpc.net/problem/2169 2169번: 로봇 조종하기 첫째 줄에 N, M(1≤N, M≤1,000)이 주어진다. 다음 N개의 줄에는 M개의 수로 배열이 주어진다. 배열의 각 수는 절댓값이 100을 넘지 않는 정수이다. 이 값은 그 지역의 가치를 나타낸다. www.acmicpc.net 문제 풀때에 있어 굉장히 어려운 부분이 한군데 있었다. ​ 5 5 10 25 7 8 13 68 24 -78 63 32 12 -69 100 -29 -25 -16 -22 -57 -33 99 7 -76 -11 77 15 ​ 테스트케이스에 입력이 이렇게 들어오는데 두번째 줄 첫번째 입력인 68의 경우 단..

article thumbnail
백준 BOJ 1912 - 연속합
알고리즘/백준 BOJ 2020. 12. 28. 14:54

무난한 dp 문제였다 https://www.acmicpc.net/problem/1912 1912번: 연속합 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net dp문제를 쬐끔 풀어보면서 느낀게 있다면, 입력배열에서 모든걸 처리하려면 골치아프다는것이다. 그냥 dp배열 하나 더 만들자 ㅎㅎ #include int input[100001] = {0}; int dp[100001] = {0}; int max(int a, int b){ return a>b?a:b; } int main(){ int n,value = -1234; scanf("%d", &n)..

반응형