백준 (229) 썸네일형 리스트형 [C++] 백준 1292번 - 쉽게 푸는 문제 문제 1292번https://www.acmicpc.net/problem/1292 배열에 1부터 1000까지 규칙에 맞게 담기 위해 i를 1부터 1000까지 반복해준다. 그리고 j를 이용해 1이면 1개만 2면 2개만 담을 수 있도록 만든다. 여기서 배열의 인덱스로 1부터 시작하는 n변수를 만든다. 그렇게 j부분의 반복문을 실행할 때마다 인덱스를 하나 증가시켜주는 것이다. j부분의 반복문을 다시 시작할 때 n이 1000을 넘는지 확인하여 범위가 넘지 않도록 주의해준다. 배열에 값을 다 넣어주면 마지막으로 A번째 숫자부터 B번째 숫자까지 반복문을 이용해 더해주어 해당 값을 출력해주면 된다. #include using namespace std;int main() { int A, B, n = 1; int num[.. [C++] 백준 2805번 - 나무 자르기 문제 2805번https://www.acmicpc.net/problem/2805 이 문제도 높이의 최댓값을 구하라는 것을 보니 이분탐색을 사용하면 되겠다. 벡터에 나무 길이를 모두 저장하고 start와 end를 이용하여 mid값을 정한다. mid는 높이를 나타낸다. 그래서 이 값보다 나무 길이가 더 크면 mid만큼 빼주고 total에 더해준다. 만약 그 total이 m보다 작다면 mid값을 줄여야하기 때문에 end를 mid-1위치로 옮긴다. 그 반대라면 result에 mid값을 저장해두고 start를 mid+1위치에 옮겨준다. #include #include using namespace std;int n, m;vector tree;int main() { cin >> n >> m; for (int i =.. [C++] 백준 13241번 - 최소공배수 문제 13241번https://www.acmicpc.net/problem/13241 A와 B를 곱한 값에 최대공약수를 나눠주면 최소공배수를 구할 수 있다. 이를 위해 유클리드 알고리즘을 이용하여 주어진 두 수 사이에 존재하는 최대공약수(gcd)를 구한다. a,b가 주어졌을 때(a가 더 큼) 뒷부분이 0일 때 앞 부분이 최대공약수가 된다. 만약 0이 아니라면 a에 b값을 넣고 b에 a%b값을 넣은 후 다시 반복해준다. #include using namespace std;long long gcd(long long a, long long b) { if (b == 0){ return a; } else{ return gcd(b, a % b); }}int main() { long.. [C++ 실패하고... 파이썬] 백준 13706번 - 제곱근 문제 13706번https://www.acmicpc.net/problem/13706 // 시간 초과 코드#include using namespace std;int main() { int N; cin >> N; int s = 1, e = N, result; while (s N) { e = mid - 1; } else { s = mid + 1; } } return 0;} 이번 문제.. 쉽게 풀 수 있을 줄 알았는데 N이 800자 이하고 C++은 bigInteger를 지원하지 않는다고 한다.어떻게 풀지 계속 고민하고 검색하다가 머리가 너무 아파서 파이썬은 사기적으로 풀 수 있다길래 한번 파이썬으로 풀어보기로 했다.... import math N = int(input()) print(math.i.. [C++] 백준 2417번 - 정수 제곱근 문제 2417번https://www.acmicpc.net/problem/2417 이번 문제는 문제에 있는 그대로 코드를 작성하니 금방 풀렸다. 'n에 루트를 씌운 q'의 제곱이 n보다 작다면 q를 하나 더 키워준다. #include #include using namespace std;int main() { long long n, q; cin >> n; q = sqrt(n); if (q * q [C++] 백준 4101번 - 크냐? 문제 4101번https://www.acmicpc.net/problem/4101 오늘 친척집에 가서 아침에 얼른 했다... 쉬운 문제라고 생각했는데 중간에 실수를 했다. while 조건에 a와 b가 0이 아닐 때까지 반복하라고 해서 0과 0이 입력되었을 때 No를 출력하고 종료되는 것이었다. 그래서 while을 무한 반복해주고 안에 있는 조건문에 a, b가 0이면 break를 통해 반복문을 빠져나오도록해주었다. #include using namespace std;int main() { int a = -1, b = -1; while (true) { cin >> a >> b; if (a == 0 && b == 0) { break; } else if (a > b) { cout [C++] 백준 1037번 - 약수 문제 1037번https://www.acmicpc.net/problem/1037 양수 A가 N의 진짜 약수가 되려면, N이 A의 배수이고, A가 1과 N이 아니어야한다고 나와있다. 그러면 1과 N이 빠진 진짜 약수들이 나와있을 때 맨 앞과 맨 뒤를 곱하면 해당하는 숫자를 구할 수 있다. 변수에 입력 개수만큼 입력받은 후 오름차순으로 정렬해 앞과 뒤의 곱을 출력해주면 된다. #include #include using namespace std;int main(){ int N; cin >> N; int* num = new int[N]; for(int i = 0; i > num[i]; } sort(num, num + N); cout [C++] 백준 1436번 - 영화감독 숌 보호되어 있는 글입니다. 이전 1 ··· 7 8 9 10 11 12 13 ··· 29 다음 목록 더보기