Algorithm 170

[백준 알고리즘/BOJ/C++] 15649 N과 M (1)

자연수 N과 M이 주어졌을 때, 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열을 출력하는 문제 N=3, M=1 일 때 1 2 3 N-4, M=2 일 때 1 2 1 3 1 4 2 1 2 3 2 4 3 1 3 2 3 4 4 1 4 2 4 3 이렇게 출력하면 된다 백트래킹은 조건에 만족할 경우 모든 경우의 수를 살펴보는 것 이라고 한다 N과 M (1)에선 중복이 아닐 경우(조건) 모두 출력한다 정도로 생각하면 될 것 같다 수열을 저장할 배열과 중복인지 체크할 배열을 각각 만들었다 배열에 저장한 수가 M개면 출력하고, 아니라면 중복인지 체크해서 배열에 수를 넣어주면 된다 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 2..

Algorithm/BOJ 2021.01.30

[백준 알고리즘/BOJ/C++] 10814 나이순 정렬

회원들을 나이순으로, 나이가 같다면 가입순으로 정렬하는 문제 가입순으로 입력되므로 나이가 같다면 사전순으로 정렬하지 말라는 문제다 1 2 3 4 5 6 bool compare(pair a, pair b) { if (a.first != b.first) return a.first n; vector arr(n); for (int i = 0; i > arr[i].first; cin >> arr[i].second; } stable_sort(arr.begin(), arr.end(), compare); //stable_sort = 고정된 위치 보장(먼저온 놈이 먼저 위치) for (int i = 0; i

Algorithm/BOJ 2021.01.26

[백준 알고리즘/BOJ/C++] 1181 단어 정렬

알파벳 소문자로 이루어진 단어들을 입력받으면 길이 순으로, 길이가 같으면 사전 순으로 정렬하는 문제 이거야 말로 벡터를 쓰면 좋은 문제다 (11650, 11651 참고) 벡터는 기본 first 기준으로, 같다면 second 기준으로 정렬하기 때문 그러므로 first엔 단어의 길이를, second엔 단어를 넣어주고 정렬하면 된다 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 #include #include #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n; cin >>..

Algorithm/BOJ 2021.01.26

[백준 알고리즘/BOJ/C++] 11650, 11651 좌표 정렬하기

이렇게 x, y를 입력받고 11650 : x 기준으로 정렬, x가 같으면 y기준으로 정렬하는 문제 11651 : y 기준으로 정렬, y가 같으면 x기준으로 정렬하는 문제 벡터를 안쓰던 때라... 모르겠어서 검색해보니 '연산자 오버로딩'이 나왔다 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 #include #include using namespace std; class Coord { public: int x; int y; bool operator x == xy.x) return this->y x > N; Coord* coords = new Coord[N]; for (int i = 0; i >..

Algorithm/BOJ 2021.01.26

[백준 알고리즘/BOJ/C++] 1427 소트인사이드

주어진 수를 정렬하는 문제 한 줄로 들어오는 수를 하나씩 떼어줘야한다 나는 string으로 입력받아 형변환을 했네.. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 #include #include using namespace std; int main(void) { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); string n; cin >> n; int len = n.length(); int* arr = new int[len]; for (int i = 0; i = 0; i--) { cout

Algorithm/BOJ 2021.01.26