본문 바로가기
  • Let's study

백준45

[C++] 백준 2110번: 공유기 설치 #include #include #include using namespace std; vectorv; int main(){ int n, c; cin >> n >> c; for (int i = 0; i > a; v.push_back(a); } sort(v.begin(), v.end()); int left = 1; int right = v[n-1]-v[0]; int result = 0; while (left = mid) { cnt++; loc = v[i]; } } if (cnt >= c) { left = mid + 1; result = mid; } else right = mid - 1; } cout 2020. 12. 30.
[C++] 백준 10870번: 피보나치 수 5 1. 배열을 선언하고 arr[0]=0, arr[1]=1을 저장 2. 2부터 시작해서 n이 될때까지 피보나치 식을 써서 값을 구하고 배열에 저장 #include using namespace std; int arr[21]; int i = 2; int fibo(int n) { while (i > n; arr[0] = 0; arr[1] = 1; fibo(n); cout 2020. 12. 27.
[C++] 백준 2292번: 벌집 1. 벌집의 개수 num는 1, 6, 12, 18... 6의 배수로 늘어난다. 2. 각 벌집은 6의 배수로 늘어나므로 1, 2~7, 8~19... 순으로 증가하는데 이를 이용한다. 3. 따라서 입력받은 숫자가 어느 벌집의 범위에 해당하는 지 알면 최단거리의 방 개수를 알 수 있다. num은 주위 벌집의 개수이므로 cnt * 6, 이후 cnt++ range는 6의 배수로 늘어나는 벌집의 범위, 따라서 num을 더해주면서 늘려간다. #include using namespace std; int main(void) { int n; cin >> n; int cnt = 1; long long num = 1; // 주위 숫자 개수 long long range = 1;//주위 숫자 중 최대 수 while (range .. 2020. 12. 26.
[C++] 백준 2839번: 설탕 배달 1. 5로 나누어 떨어지면 그 갯수를 센다 2. 그렇지 않다면 3을 한 번 빼고 cnt++ 3. 이 때 설탕이 0보다 작아지면 5와 3으로 정확하게 N 킬로그램을 만들 수 없다는 것이므로 cnt=-1 #include using namespace std; int main(void) { int n; cin >> n; int cnt = 0; while (n > 0) { if (n % 5==0) { cnt += n / 5; n %= 5; } else { cnt++; n -= 3; } if (n < 0) { cnt = -1; break; } } cout 2020. 12. 26.
[C++] 백준 7568번: 덩치 1. pair 형태로 몸무게랑 키를 vector에 저장, score는 등수 저장 변수로 모두 1로 초기화 2. 벡터의 모든 요소를 하나하나 비교하면서 자신보다 몸무게와 키 둘 다 큰 다른 요소랑 비교할 경우 등수++ 3. 등수 출력 #include #include using namespace std; int main(void) { int n; cin >> n; vectorv; int score[51]; for (int i = 0; i > a >> b; v.push_back(make_pair(a,b)); score[i] = 1; } for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (i == j).. 2020. 12. 23.
[C++] 백준 2231: 분해합 1. 가장 작은 생성자를 구해야 하므로 1부터 더해나간다. 2. sum은 생성자와 생성자의 각 자리수 합을 모두 더한 변수, p는 각 자리수의 합을 구하기 위한 변수 3. p가 0이 될때까지 각 자리수의 합을 구하고 sum에 추가 4. sum==n 이면 i를 출력하고 실행을 끝낸다. 5. 만약 4번 조건에 걸리지 않는다면 생성자가 없는 것이므로 0을 출력한다. #include using namespace std; int main(void) { int n; cin >> n; int sum;//전체 합 int p;//각 자리수 for (int i = 1; i 0) { sum += p % 10; p /= 10; } if (sum == n) { .. 2020. 12. 23.