분류 전체보기 (233) 썸네일형 리스트형 [C++] 백준 11651번 - 좌표 정렬하기 2 문제 11651번https://www.acmicpc.net/problem/11651 이번에는 어제에 이어 좌표 정렬하기 2번째 문제이다. 어제와는 반대로 y좌표가 증가하는 순으로 하고, 만약 y좌표가 같으면 x좌표가 증가하느 순서로 정렬하는 문제이기 때문에 sort의 compare함수를 이용하여 y좌표가 같으면 x가 작은 것부터, 다르면 y가 작은 것부터 정렬한다. #include #include #include using namespace std;int N, x, y;vector > v;bool compare(paira, pairb) { if (a.second == b.second) { return a.first > N; for (int i = 0; i > x >> y; v.push_back(mak.. [C++] 백준 11650번 - 좌표 정렬하기 문제 11650번https://www.acmicpc.net/problem/11650 sort를 하면 벡터의 첫번째를 기준으로 정렬한다. 만약 첫번째가 같으면 두번째를 기준으로 정렬하기 때문에 이를 사용하면 될 것 같다. #include #include #include using namespace std;int main() { vector > v; int N, x, y; cin >> N; for (int i = 0; i > x >> y; v.push_back(make_pair(x, y)); } sort(v.begin(), v.end()); for (int i = 0; i [C++] 백준 10824번 - 네 수 어제는 시골에 갔는데 깜빡하고 노트북을 가지고 가지 않아서 못 풀었다...사실 월요일에 집에 돌아올줄 알았는데 오늘 돌아오게 되어 오늘은 풀 수 있게 되었다. 그럼 바로 고~~ 문제 10824번https://www.acmicpc.net/problem/10824 숫자를 문자열로 받아 서로 합치고, 합친 각 문자열을 숫자로 바꿔 더해주면 되는 문제이다.그런데 나는 int로 해서 런타임 에러(out_of_range)가 났다... long long으로 해줘야한다... #include #include using namespace std;int main() { int A, B, C, D; cin >> A >> B >> C >> D; string AB = to_string(A) + to_string(B); str.. [C++] 백준 2631번 - 줄세우기 오늘 열받는 일이 있어서 문제에 집중을 못했다...그래도 오늘이 마지막이니까 ㅎㅎ내일부터는 다시 자유다... 힘들게 일했더니 너무 피곤해서 이 문제는 다음에 다시 봐야겠다... 문제 2631번https://www.acmicpc.net/problem/2631 다이나믹 프로그래밍 배치하는 문제를 만나면 가장 중요한 포인트는 기준을 잡기 -> 오름차순으로 정렬하라고 했으니 오름차순으로 가장 길게 정렬된 부분을 기준 LIS(최장 부분 증가수열): 앞에서부터 뒤로, 각각의 값이 이전 값보다 크고 가장 긴 부분 수열을 뜻함 #include #include using namespace std;int main() { int N = 0, result = 0; scanf("%d", &N); int child[201],.. [C++] 백준 2792번 - 보석 상자 문제 2792번https://www.acmicpc.net/problem/2792 색상의 수만큼 보석들(입력값)을 벡터에 넣어준다. 이때 이분탐색을 할 때 필요한 right에 넣을 최대값을 구해준다(가장 개수가 많은 색의 보석). 왜냐하면 보석이 가장 많을 때가 질투심이 최대일 때이니까... (left에는 1을 넣어주면 됨) left와 right의 중간값 mid를 기준으로 입력받은 각 색상의 보석을 나눠준다. 그렇게 나오는 몫이 나눠줄 수 있는 학생의 수이기에 count에 더해주고 나머지가 0이 아닐 경우 더 나눠줄 수 있으니까 count를 1증가시켜준다(if문의 조건에 0이 들어가면 false니까 실행이 안 됨). 최종으로 나온 count값이 학생수 N명보다 작거나 같으면 true를 반환해준다. tru.. [C++] 백준 10867번 - 중복 빼고 정렬하기 오늘은 근로자의 날 기념 콘서트가 있어서 다녀왔다..너무 힘들어서 오늘은 그냥 간단한 문제를 풀어야겠다(내일도 출근해야하니...). 문제 10867번https://www.acmicpc.net/problem/10867 이번에는 입력값을 다 배열에 넣어준 후 정렬을 해준다. 그리고 중복되지 않게 출력해줘야되기 때문에 temp변수에 현재값을 넣어놓고 그 값과 배열의 각 값을 비교해 다르면 temp에 업데이트 해준 후 해당 v[i]값을 출력한다. #include #include using namespace std;int v[100000];int main() { int N, temp = 0; cin >> N; for (int i = 0; i > v[i]; } sort(v, v + N); for (int i = .. [C++] 백준 6236번 - 용돈 관리 문제 6236번https://www.acmicpc.net/problem/6236 최소 금액을 1로 잡고 최대 금액을 사용할 금액의 합으로 잡는다. 그리고 그 사이의 mid 값을 구해서 mid를 temp변수에 넣고 temp가 사용할 금액(money[i])보다 어떠한지 비교해준다. 사용할 금액보다 temp가 더 크거나 같다면 그대로 temp에서 사용할 금액을 빼준다. 만약 아니라면 사용할 수 있는 금액은 다 사용했다는 것이기 때문에 temp에 인출할 수 있는 돈 mid를 넣어주고 통장에서 빼야되기 때문에 1증가시켜준다. 이제 다시 그 다음 사용할 금액(money[i])과 temp를 비교해서 사용할 금액이 더 크다면 false(인출 금액을 더 키워줘야해서 left를 mid+1로 이동)를 반환해주고, 아니라면.. [C++] 백준 16401번 - 과자 나눠주기 문제 16401번https://www.acmicpc.net/problem/16401 left와 right에 각각 과자의 최소 길이와 최대 길이를 넣어준다. 그리고 그것들의 사이의 길이인 mid를 이용한다. 과자의 길이들을 담은 L배열에 현재 기준으로 잡은 길이인 mid를 나눠 나온 수를 count에 더해준다. 해당 count는 mid의 길이로 몇명에게 나눠줄 수 있는지 보기 위해 count하는 것이다. 몇명나눠줬는지 확인한 count가 조카 수보다 크거나 같다면 과자가 짧아 길이가 더 길어져도 된다는 소리이기 때문에 left의 위치를 mid+1로 옮겨준다. 그리고 나눠줄 수 있는 과자의 최대길이를 저장하는 result변수에 현재 과자의 길이인 mid를 넣어준다(계속 반복하다보면 최대길이가 저장됨). co.. 이전 1 ··· 9 10 11 12 13 14 15 ··· 30 다음