본문 바로가기

Algorithm197

[백준 10825] 국영수 10825번: 국영수 (acmicpc.net) 10825번: 국영수 첫째 줄에 도현이네 반의 학생의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 한 줄에 하나씩 각 학생의 이름, 국어, 영어, 수학 점수가 공백으로 구분해 주어진다. 점수는 1보다 크거나 같고, 1 www.acmicpc.net 배운것 - 문자랑 숫자랑 섞여있을 때 입력을 어떻게 하지 하고 막막할 수 있는데 새로운 구조체를 만들면 됨 - vector 만들어주고 뒤에 v(N) N 안붙여줬더니 컴파일 에러남 - for문을 N까지 돌리는데 당연한듯. - cmp 리턴할때 오름차순은 - 이해 안되면 외울수밖에 없다 정답풀이1 #include #include #include #include using namespace std; st.. 2022. 9. 25.
[백준 11650] 좌표 정렬하기 11650번: 좌표 정렬하기 (acmicpc.net) 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 내 풀이 using namespace std; #include #include #include bool cmp(pairp1, pairp2) { // compare 함수 if(p1.first==p2.first)return p1.secondn; vector v; while(n--) { int t1,t2; cin>>t1>>t2; v.push_back(make_pa.. 2022. 9. 23.
[백준 15688] 수 정렬하기 5 15688번: 수 정렬하기 5 (acmicpc.net) 15688번: 수 정렬하기 5 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이며, 같은 수가 여러 번 중복될 수도 있다. www.acmicpc.net 배운것 수의 범위가 어느 정도 한정적일 때에만 Counting Sort를 쓸 수 있음 수의 범위가 대략 1000만 이하일때에는 카운팅 소트를 쓰고 그렇지 않을 경우에는 카운팅 소트를 쓰지 못한다고 생각하기 - 수가 -1,000,000에서 1,000,000인게 껄끄러우니 freq 배열의 인덱스에 접근할 때는 13번째 줄 처럼 100만을 더하고 freq 배열의 값을 보며 수를 출력.. 2022. 9. 21.
[백준 18808] 스티커 붙이기 18808번: 스티커 붙이기 (acmicpc.net) 배운 것 1. 스티커를 특정 영역에 붙일 수 있는지 확인하고 붙이기 (함수로 빼기) 2. 스티커를 회전하기 (함수로 빼기) 복잡한 절차들은 함수로 빼서 처리할 수 있다. 정답 코드 // Authored by : BaaaaaaaaaaarkingDog // Co-authored by : - // http://boj.kr/6a7f35306b1446b1b01b057263879295 #include using namespace std; int n, m, k; int note[42][42]; int r, c; int paper[12][12]; // paper를 90도 회전하는 함수 void rotate(){ int tmp[12][12]; for(int i = 0.. 2022. 9. 20.
[실전 알고리즘] 정렬1(면접용) 기초 정렬 Selection Sort / O(N^2) - swap으로 구현 int arr[10] = { 3,2,7,116,62,235,1,23,55,77 }; int n = 10; for (int i = n - 1; i > 0; i--) { int maxIndex = 0; for (int j = 1; j 0; i--) { swap(*max_element(arr, arr + i + 1), arr[i]); } Bubble Sort / O(N^2) int arr[5] = {-2,2,4,6,13}; int n = 5; for (int i = 0; i arr[j + 1])swap(arr[j], arr[j + 1]); } } Merge Sort / O(NlogN) 재귀적으로 수열을 나눠 정렬한 후 합치는 정렬법 M.. 2022. 9. 20.
[자료구조와 알고리즘] 동적 배열 구현(size, capacity, reserve, resize) 본 내용은 을 토대로 작성하였습니다. Vector 구현 vector - size() vs capacity() size() : 실제 사용중인 데이터 갯수 capacity() : 할당된, 예약된 총 공간 #include #include using namespace std; int main() { vector v; v.reserve(100); cout 2022. 9. 20.