분류 전체보기(174)
-
백준 NM과 K(1)
진짜 오래 걸린 문제였다. 단순 백트래킹으로 구현하여 답도 제대로 나오는데, 95프로에서 계속 틀렸다고 나와서 정신이 나가는 줄 알았다. #include using namespace std; int n,m,k; int isused[12][12]; int arr[12][12]; int lst[12]; int ans = -2147483648; void func(int row, int col, int lim) { if (lim == k) { int sum = 0; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { if (isused[i][j] == 1) sum += arr[i][j]; } } ans = max(ans, sum); return ; } fo..
2023.07.19 -
백준 2309 일곱 난쟁이
쉬운 문제부터 백준 codeplus 문제집을 차례로 풀어보려고 한다. #include #include #include using namespace std; int main() { vector arr; for (int i = 0; i >tmp; arr.push_back(tmp); } sort(arr.begin(), arr.end()); for (int i = 0; i
2023.07.16 -
백준 18870 좌표 압축
오늘 푼 문제에서는 cpp 에서 안써본 문법들을 잔뜩 썼다. 다시 쓸일이 있을지는 모르겠다만 기록으로 남겨두자!! 우선 lower_bound 이진탐색기반으로 해당하는 값보다 크거나 같은값이 제일 처음 등장하는 곳 위치를 리턴. (정렬 전제) 또 중요한 내용이이 unique 와 erase 를 사용해서 벡터에서 중복되는 값들을 없애는 것이었다. 코드로 보자! #include #include #include #include using namespace std; map ranks; int main() { int n, tmp; vector input; vector input2; cin >> n; for (int i = 0; i > tmp; input.push_back(tmp); in..
2023.06.23 -
백준 10816 숫자 카드 2
이번 문제도 이분 탐색이었다. 다만 이번에는 중복되는 숫자 카드들이 있어서, 그 갯수 까지 헤아려야 하는 문제였다. 이전 이분탐색과 코드는 거의 유사하나, map 을 이용한 부분이 조금 달랐고, map 을 사용하는 것에 아직 익숙치 않다는 게 슬프다. 이번 기회에 확실하게 챙겨가자!! 우선 이분탐색은 반드시 인덱스 기준으로 하자. from, to 등을 arr[i] 가 아닌 arr 로 하자는 것. 그러고 비교 값을 arr[mid] 와 비교해야 한다! 안그러면 값이 틀린다. map 사용하기 우선 map 에 값을 입력하는 것은 잘 알고 있었다. counts.insert(make_pair(tmp, 1)); 다만 map 에서 키 - value 값의 value 를 증가시키고자 할 때 어떻게 해야 하는지 헷갈렸는데,..
2023.06.22 -
백준 1920 수 찾기
오늘은 '이분 탐색' 문제를 풀었다. 그냥 for문을 돌면서 해당 수가 있는 곳을 범위를 절반씩 줄여가며 찾았다. 반복문을 돌면서 찾으면 쉽겠지만 시간초과가 날 것이다. #include #include #include #include using namespace std; int main() { int n, m; vector arr1; vector arr2; int tmp; cin >> n; for (int i = 0; i > tmp; arr1.push_back(tmp); } cin >> m; for (int i = 0; i > tmp; arr2.push_back(tmp); } sort(arr1.begin(), arr1.end()); vector..
2023.06.22 -
백준 1057 토너먼트
#include using namespace std; int main() { int n, a,b; int cnt = 0; cin>>n>>a>>b; while(1) { if (a == b) break; a -= (a/ 2); b -= (b /2 ); cnt++; } cout
2023.06.20