본문 바로가기

백준

(49)
[백준 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..
[백준 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;..
[백준 1012] 유기농 배추 # 문제링크 www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 섬 개수 세는 문제랑 비슷한 문제다. DFS로 같은 섬의 방문한 map을 다시 0으로 변경시켜주어 다시 세지 않도록 한다. 모든 1을 0으로 바꿔주었기 때문에 여러 번 반복하더라도 초기화 할 필요가 없어서 좋다. # 제출 코드 # include char map[50+2][50+2]; int T, M, N, K; int yd[] = { 1, -1, 0,0 }; int xd[] = { 0, 0, 1, -1 }; v..
[백준 2146] 다리 만들기 # 문제링크 www.acmicpc.net/problem/2146 2146번: 다리 만들기 여러 섬으로 이루어진 나라가 있다. 이 나라의 대통령은 섬을 잇는 다리를 만들겠다는 공약으로 인기몰이를 해 당선될 수 있었다. 하지만 막상 대통령에 취임하자, 다리를 놓는다는 것이 아깝다 www.acmicpc.net DFS를 사용하여 섬을 구분하고, BFS를 사용해서 가장 짧은 거리를 찾는 문제. DFS, BFS 둘 다 써야하는 문제였어요. 문제 예시로 준 섬입니다. 이를 아래처럼 0과 1로 표시할 수 있습니다. 1 1 1 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 1 0 1 1 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0..
[백준 1010] 다리 놓기 #조합 # 문제 링크 www.acmicpc.net/problem/1010 1010번: 다리 놓기 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 강의 서쪽과 동쪽에 있는 사이트의 개수 정수 N, M (0 > T; while (T--) { int N, M; cin >> N >>..