정렬
11650번: 좌표 정렬하기
11650번: 좌표 정렬하기사용 언어: C++ 풀이1) struct Point안에서 연산자 오버로딩을 통해 비교 방법을 만들거나,2) bool Compare 함수를 만들어서 포인트들을 비교할 수 있는 방법을 만든다.아래는 오버로딩을 할때 쓸 코드bool operator 아래는 2)로 푼 코드#include using namespace std;struct Point{ int x, y;};bool Compare(const Point &a, const Point &b){ if(a.x != b.x) { return a.x > N; vector V(N); for(int i=0; i> V[i].x; cin >> V[i].y; } sort(V.begi..
18870번: 좌표 압축
18870번: 좌표 압축사용 언어: C++ 풀이 실제로 값들을 비교해서 푸는게 아니라, 값들을 받아서 정렬 후 (중복값도 빼주면서), 정렬하지 않은 배열의 원소가 정렬된 배열의 몇 번째 인덱스인지 알아내면 그 값이 그 원소가 다른 몇 개의 원소보다 큰지 개수다.#include using namespace std;int main(){ ios::sync_with_stdio(0); cin.tie(0); int N; cin >> N; int A[N]; for(int i=0; i> A[i]; } vector C; for(int i=0; i
2752번: 세수정렬
2752번: 세수정렬(BOJ C/C++) 사용 언어: C++ 문제 동규는 세수를 하다가 정렬이 하고싶어졌다. 숫자 세 개를 생각한 뒤에, 이를 오름차순으로 정렬하고 싶어 졌다. 숫자 세 개가 주어졌을 때, 가장 작은 수, 그 다음 수, 가장 큰 수를 출력하는 프로그램을 작성하시오. 입력 숫자 세 개가 주어진다. 이 숫자는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 이 숫자는 모두 다르다. 출력 제일 작은 수, 그 다음 수, 제일 큰 수를 차례대로 출력한다. 첫 번째 풀이 그냥 버블정렬과도 같고 풀이들 중 시간복잡도가 가장 긴 O(n^2) 이다. 물론 지금은 배열의 크기가 작아서 상관없지만 크기가 커지만 이 풀이는 지양적이다. #include using namespace std; int ar..