목록전체 글 (217)
Study hard

https://www.acmicpc.net/problem/11004 11004번: K번째 수 수 N개 A1, A2, ..., AN이 주어진다. A를 오름차순 정렬했을 때, 앞에서부터 K번째 있는 수를 구하는 프로그램을 작성하시오. www.acmicpc.net [풀이] C++ STL의 sort함수를 이용하여 정렬하고, K번째에 있는 수를 출력하면 된다. #include #include #include //sort #include using namespace std; int N, K; vectorA; void input() { int n; scanf("%d %d", &N, &K); for (int i = 0; i < N; i++) { scanf("%d", &n); A.push_back(n); } } void..

https://www.acmicpc.net/problem/11652 11652번: 카드 준규는 숫자 카드 N장을 가지고 있다. 숫자 카드에는 정수가 하나 적혀있는데, 적혀있는 수는 -262보다 크거나 같고, 262보다 작거나 같다. 준규가 가지고 있는 카드가 주어졌을 때, 가장 많이 가지 www.acmicpc.net [풀이] C++ STL의 sort함수를 사용한다. 적혀있는 수의 범위가 크므로 long long타입을 사용한다. 정렬 후 숫자 카드의 개수의 최댓값을 갱신하며 가장 많이 가지고 있는 정수를 찾는다. #include #include #include //sort using namespace std; int N; vectorv; void input() { long long n; cin >> N; ..

https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net [풀이] 처음에 C++ STL의 sort함수를 이용하여 풀려고 하였으나, 메모리 초과가 떴다. 그래서 원소의 개수가 10001인 배열 Num[]을 만들어 입력 받는 수 x에 대해 Num[x]의 수를 +1 하여 해당 수가 몇 번 들어왔는지 기록한 뒤, Num[1]~Num[10000]까지 0보다 큰 값이 있는 index를 값만큼 출력하는 프로그램을 짰다. 이 방법을 쓸 때 cin, cout을 썼더니 시간초과가 떴다. ..

https://www.acmicpc.net/problem/10825 10825번: 국영수 첫째 줄에 도현이네 반의 학생의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 한 줄에 하나씩 각 학생의 이름, 국어, 영어, 수학 점수가 공백으로 구분해 주어진다. 점수는 1보다 크거나 같고, 1 www.acmicpc.net [풀이] C++ STL의 sort함수를 이용하여 해결할 수 있다. 문제의 조건에 맞는 사용자 함수를 만들어 sort의 세 번째 인수로 넣어야 한다. #include #include #include #include //sort using namespace std; struct Score { string name; int Kor, Eng, Math; }; int N; vector..

https://www.acmicpc.net/problem/10814 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 � www.acmicpc.net [풀이] 회원의 가입순서, 나이, 이름으로 구성된 구조체를 vector의 원소로 하여 문제의 조건에 맞는 사용자함수를 만들어 sort의 세 번째 인수로 넣어서 해결할 수 있다. #include #include #include #include //sort using namespace std; struct Info { int signUp, age;//가입순서, 나이 string name;//이름 }; ..

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 C++ STL의 sort함수를 이용하여 해결할 수 있다. 다만, vector의 원소가 pair일 때 sort함수의 default는 먼저 first원소를 기준으로 오름차순 정렬을 하고, 만약 first원소가 같으면 second원소를 기준으로 오름차순 정렬을 하는 것이기 때문에, 다른 규칙으로 정렬을 하고싶으면 직접 사용자 함수를 만들어서 so..