본문 바로가기

Algorithm197

[백준 5648] 역원소 정렬 5648번: 역원소 정렬 (acmicpc.net) 5648번: 역원소 정렬 모든 원소가 양의 정수인 집합이 있을 때, 원소를 거꾸로 뒤집고 그 원소를 오름차순으로 정렬하는 프로그램을 작성하세요. 단, 원소를 뒤집었을 때 0이 앞에 선행되는 경우는 0을 생략해야합니 www.acmicpc.net 배운것 reverse 함수 reverse(st.begin(), st.end()); stoll() : string to longlong v.push_back(stoll(st)); 정답 풀이 // Authored by : std-freejia // Co-authored by : - // http://boj.kr/c56909c54c4f4e9fb2c987a6eb3b96ee #include using namespace std.. 2022. 9. 27.
[백준 2146] 다리 만들기 2146번: 다리 만들기 (acmicpc.net) 2146번: 다리 만들기 여러 섬으로 이루어진 나라가 있다. 이 나라의 대통령은 섬을 잇는 다리를 만들겠다는 공약으로 인기몰이를 해 당선될 수 있었다. 하지만 막상 대통령에 취임하자, 다리를 놓는다는 것이 아깝다 www.acmicpc.net 접근법 1. 기존 (섬 cnt + 넓이 구하기 문제) + 다른 섬과의 거리 2. 기존 섬 cnt 하던대로 하고 다른 섬과의 거리 저장을 위한 dist 배열 하나 더 만들어서 적용 3. 신경쓸 것은 if문 안의 조건들, 리셋해줄것들, 추가 변수 cnt, ans 등등 어디에 넣고 언제 카운트해줄건지 정답 코드 1 // Authored by : yongjunleeme // Co-authored by : Baaaaaaaaaa.. 2022. 9. 27.
[실전 알고리즘] 정렬2(코테용) Counting Sort 수의 범위가 어느 정도 한정적일 때에만 Counting Sort를 쓸 수 있음 수의 범위가 대략 1000만 이하일때에는 카운팅 소트를 쓰고 그렇지 않을 경우에는 카운팅 소트를 쓰지 못한다고 생각하기 1부터 차례로 나온 횟수만큼 적으면 끝 1이 2번 나왔으니 1을 2개 쓰고, 2는 1번이니 1개 쓰고, 이런식으로 하면 너무나 쉽게 정렬이 가능 [백준 15688] 수 정렬하기 5 (tistory.com) Radix Sort 자릿수를 이용해서 정렬을 수행하는 알고리즘 Comparison Sort, Non-comparison Sort Comparison Sort : 버블 소트, 머지 소트, 퀵 소트 원소들끼리 크기 비교 과정 있음 Non-comparison Sort : 카운팅 소트, 라.. 2022. 9. 26.
[백준 11652] 카드 11652번: 카드 (acmicpc.net) 11652번: 카드 준규는 숫자 카드 N장을 가지고 있다. 숫자 카드에는 정수가 하나 적혀있는데, 적혀있는 수는 -262보다 크거나 같고, 262보다 작거나 같다. 준규가 가지고 있는 카드가 주어졌을 때, 가장 많이 가지 www.acmicpc.net 정답 풀이 // Authored by : BaaaaaaaaaaarkingDog // Co-authored by : - // http://boj.kr/f3feaf22016f4c9687b84ab6be2f4389 #include using namespace std; int n; long long a[100005]; int main(void) { ios::sync_with_stdio(0); cin.tie(0); cin >.. 2022. 9. 26.
[백준 2573] 빙산 2573번: 빙산 (acmicpc.net) 배운 것 - 구현해야 할 것이 많을때는 main 함수에 구현해야할 것들을 대략 함수로 빼서 나열해놓고 함수에서 고민하는 것이 깔끔한듯 - fill 함수 : #include // 백터 생성 vector v(8); // 1번째 위치부터 4번째 위치까지 1로 할당 fill (v.begin(), v.begin()+4, 1); // 5번째 위치부터 끝까지 2로 할당 fill (v.begin()+4, v.end(), 2); 정답 코드1 - 좀 난해해서 읽기 어려움 #include using namespace std; #define X first #define Y second int n, m, year; int area[303][303]; int vis[303][303]; .. 2022. 9. 26.
[백준 1431] 시리얼 번호 1431번: 시리얼 번호 (acmicpc.net) 1431번: 시리얼 번호 첫째 줄에 기타의 개수 N이 주어진다. N은 50보다 작거나 같다. 둘째 줄부터 N개의 줄에 시리얼 번호가 하나씩 주어진다. 시리얼 번호의 길이는 최대 50이고, 알파벳 대문자 또는 숫자로만 이루어 www.acmicpc.net 배운것 - isdigit 함수: 숫자를 판단하는 함수 C언어 : C++ : int isdigit(int c); 매개변수로 들어온 char 타입이 10진수 숫자로 변경이 가능하면 0이 아닌 숫자(true), 아니면 0(false)를 반환하는 함수 - 문자 -> 숫자 변환 1) isdigit(문자)으로 숫자 될 수 있는지 확인 2) ex. 문자= 5 일 때 아스키코드상 수로 표시된 문자열은 다음과 같음 문자 5.. 2022. 9. 25.