본문 바로가기

Algorithm/Sorting

(38)
(C++) - 백준(BOJ) 10825번 : 국영수 답 www.acmicpc.net/problem/10825 10825번: 국영수 첫째 줄에 도현이네 반의 학생의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 한 줄에 하나씩 각 학생의 이름, 국어, 영어, 수학 점수가 공백으로 구분해 주어진다. 점수는 1보다 크거나 같고, 1 www.acmicpc.net 정렬 문제였습니다. 풀이방법 stl에서 sort함수를 사용할 때 정렬 기준을 커스터마이징할 수 있습니다. Code #include using namespace std; int n; struct Student { string name; int korean, english, math; }; vector v; bool cmp(Student &a, Student &b){ if(a.korean ==..
(C++) - 백준(BOJ) 1744번 : 수 묶기 www.acmicpc.net/problem/1744 1744번: 수 묶기 길이가 N인 수열이 주어졌을 때, 그 수열의 합을 구하려고 한다. 하지만, 그냥 그 수열의 합을 모두 더해서 구하는 것이 아니라, 수열의 두 수를 묶으려고 한다. 어떤 수를 묶으려고 할 때, 위치에 www.acmicpc.net 정렬문제였습니다. 풀이방법 1. 곱이 가장 크도록 묶는 방법을 생각해야 합니다. 2. n만큼 정수를 입력받을 때 음수와 양수를 따로 vector에 저장해줍니다. 양수는 0을 포함하면 안됩니다. 왜냐하면 음수에서 -1이라는 수와 0이 남은 경우 0과 곱해서 음수가 더해지는 것을 막을 수 있기 때문입니다. 반대로 양수배열에서 0을 곱해서 얻을 수 있는 이익이 없습니다. 따라서 0이 들어온다면 음수 vector에 ..
(C++) - 백준(BOJ) 1926번 : 수 정렬하기 5 www.acmicpc.net/problem/15688 15688번: 수 정렬하기 5 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이며, 같은 수가 여러 번 중복될 수도 있다. www.acmicpc.net counting sort를 사용하는 문제였습니다. 풀이방법 1. 입력받은 수를 세줍니다. x라는 수의 개수는 num이라는 배열의 x번째 index의 값이 됩니다. *음수 입력이 들어올 수 있으니 index를 100만만큼 더한 후 해당 index 값을 1씩 증가하도록 합니다. 이런식으로 입력이 들어왔다고 가정했을 때 배열의 index로는 음수를 표현할 수 없으므로 오른쪽으로 100..
(C++) - 프로그래머스(연습문제) : 문자열 내 마음대로 정렬하기 programmers.co.kr/learn/courses/30/lessons/12915 코딩테스트 연습 - 문자열 내 마음대로 정렬하기 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱 programmers.co.kr 정렬 구현 문제였습니다. 풀이방법 1. 매 solution함수 호출마다 n을 갱신해줍니다. 2. cmp함수를 이용해 stl sort함수의 세 번째 인자를 cmp함수 내에 정해진 기준으로 정렬여부를 판별하도록 합니다. 사전순 (오름차순)으로 정렬되어야 함을 유의하며 작성합니다. Code #include usin..
(C++) - 백준(BOJ) 1015번 : 수열 정렬 답 www.acmicpc.net/problem/1015 1015번: 수열 정렬 P[0], P[1], ...., P[N-1]은 0부터 N-1까지(포함)의 수를 한 번씩 포함하고 있는 수열이다. 수열 P를 길이가 N인 배열 A에 적용하면 길이가 N인 배열 B가 된다. 적용하는 방법은 B[P[i]] = A[i]이다. 배열 A가 주 www.acmicpc.net stl sort를 이용해 푼 brute force문제였습니다. 풀이방법 1. 입력받은 수를 오름차순으로 정렬합니다. 2. 정렬한 후 각 수가 어디로 이동했는지 원래 배열과 정렬된 후의 배열을 비교해 찾았다면 해당 index를 넣어줍니다. 이 때 같은 수가 계속해서 있을 수 있으므로 해당 index를 check했다는 의미로 1로 만들어주어 같은 index를 정..
(C++) - 프로그래머스(고득점 kit - 정렬) : H-index 답 programmers.co.kr/learn/courses/30/lessons/42747 코딩테스트 연습 - H-Index H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표 programmers.co.kr 모든 경우를 탐색하는 brute force로 풀었습니다. 풀이방법 논문의 수는 최대 1000까지이므로 h-index는 1000까지가 최대입니다. 1000까지 h-index를 증가시키며 가장 큰 h-index를 찾아주시면 됩니다. Code #include #include using namespace std; int solution(vector c..