본문 바로가기

분류 전체보기

(256)
[백준 2659] 십자카드 문제 C++ 풀이 # 문제링크 www.acmicpc.net/problem/2659 2659번: 십자카드 문제 입력은 한 줄로 이루어지며, 이 한 줄은 카드의 네 모서리에 씌여있는 1 이상 9 이하의 숫자 4개가 시계 방향으로 입력된다. 각 숫자 사이에는 빈칸이 하나 있다. www.acmicpc.net 모든 시계수를 만들어 visited 에 체크하고, 주어진 수 까지 앞에 몇개가 있었는지 확인했습니다. 시계수를 만들 때 4중 for 문을 사용했는데 이렇게 하는 게 맞는지 모르겠네... 하면서 했습니다. 더 좋은 방법이 있을지도.. # 제출 코드 #include #include using namespace std; bool visited[10000]; int get_num(int a, int b, int c, int d) {..
[백준 2309] 일곱 난쟁이 # 문제링크 www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 아홉 난쟁이 중에 일곱 난쟁이의 키를 합해서 100이 되어야 하는 문제. 이중 for문으로 9 개 중에 2개를 골라도 되고, DFS를 사용해도 된다. # 제출 코드 // 이중 for 문 사용 코드 #include #include # define INF 0x7f using namespace std; int ki[10]; int sum; void Input() { for (int i = 0; i < 9; i++..
[백준 11004] K번째 수 # 문제링크 www.acmicpc.net/problem/11004 11004번: K번째 수 수 N개 A1, A2, ..., AN이 주어진다. A를 오름차순 정렬했을 때, 앞에서부터 K번째 있는 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 정렬해서 K 번째 있는 수를 구해야 한다. C++의 STL에 sort 를 활용해서 배열을 완전히 정렬한 후 K번째 값을 출력하면 된다. 정렬해서 몇 번째에 있는 수를 알려주는 STL인 nth_element 함수가 있다. nth_element(시작, 찾고자하는 인덱스, 끝) 이렇게 넣어주면 된다. # 제출 코드 // sort 를 이용한 풀이 #include #include using namespace std; long long int a[5000001]..
[백준 10825] 국영수 정렬문제 # 문제링크 www.acmicpc.net/problem/10825 10825번: 국영수 첫째 줄에 도현이네 반의 학생의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 한 줄에 하나씩 각 학생의 이름, 국어, 영어, 수학 점수가 공백으로 구분해 주어진다. 점수는 1보다 크거나 같고, 1 www.acmicpc.net STL의 sort 에 compare 함수로 구현했습니다. # 제출 코드 #include #include #include #include using namespace std; struct Student { string name; int kor; int eng; int math; }; bool compare(const Student&a, const Student&b) { if (a..
[백준 10814] 나이순 정렬 # 문제링크 www.acmicpc.net/problem/10814 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net STL의 stable sort를 사용하여 가입 순서가 바뀌지 않도록 구현했습니다. # 제출 코드 #include #include #include using namespace std; struct Member { int age; string name; }; Member temp; vectorv; bool compare(const Member&a, const Member&b) { return a.age < ..
[백준 11651] 좌표 정렬하기 2 # 문제링크 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 STL의 sort는 첫번째 인자를 기준으로 정렬을 하기 때문에, x, y 를 입력받아 y, x 순으로 vector 에 넣어주면 y를 기준으로 정렬할 수 있다. # 제출 코드 #include #include #include using namespace std; vector v; int main() { int N; cin >> N; int x, ..
[백준 11650] 좌표 정렬하기 C++ STL활용풀이 # 문제링크 www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net STL의 sort 함수를 썼더니, 알아서 vector 의 first 를 기준으로 정렬을 하고, first가 같으면 second를 기준으로 정렬합니다. # 제출 코드 #include #include #include using namespace std; vector v; int main() { int N; cin >> N; int x, y; for ..
[백준 2751] 수 정렬하기 2 C++ STL 사용해서 풀기 # 문제링크 www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 기본 정렬 문제입니다. C++의 STL을 활용해서 풀었습니다. algorithm 헤더를 추가해서 sort 함수를 사용했습니다. # 제출 코드 #include #include #include using namespace std; vector v; int main() { int N; cin >> N; int num; for (int i = 0; i > num;..