본문 바로가기

전체 글145

좌표 정렬하기 #11650 c++ 풀이 https://www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 조건이 2개이상이면, 이제는 자연스럽게 자료구조를 정의하고 comp함수를 넘겨주는 방법으로 sort를 진행하는 것 같다. #include #include #include using namespace std; typedef struct idx { int x; int y; }; bool comp(idx a, idx b) { if (a.x != b... 2023. 10. 13.
c++ lower_bound upper_bound 출처 : https://chanhuiseok.github.io/posts/algo-55/ 알고리즘 - c++ lower_bound, upper_bound 활용하기 컴퓨터/IT/알고리즘 정리 블로그 chanhuiseok.github.io 정리가 잘 되어있는 글을 요약하자면, lower_bound : 찾으려는 key 값보다 같거나 큰 숫자가 배열 몇 번째에서 처음 등장하는지 찾기 위함 #include #include using namespace std; int main() { int arr[6] = { 1,2,3,4,5,6 }; cout 2023. 10. 13.
숫자 카드 2 #10816 c++ 풀이 https://www.acmicpc.net/problem/10816 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,0 www.acmicpc.net 처음들었던 생각은 부르트 포스로 될까? 하는 생각이었고 결국 천만 * 천만 번의 연산을 수행해야해서 다른 방법을 사용해야겠다고 생각했습니다. 두번째로 생각해낸 방법은 vector에 담아서 수 검색이 안될때까지 bineary_search를 하는 방법을 생각했습니다. 세번째로는 그냥 들어오면서 세면 되는거 아냐? 하고 맵을 사용했습니다. #include #inclu.. 2023. 10. 13.
덱 #10866 c++ 풀이 https://www.acmicpc.net/problem/10866 10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 스택, 큐에 이어서 덱 push와 pop을 앞 뒤 두부분에서 할 수 있다는 점만 다르게 구현하면 됩니다. 역시 를 include해야합니다. #include #include #include #include #include #include #include #include using namespace std; int main() { ios::sync_with_stdio(false); c.. 2023. 10. 13.