끄적끄적 코딩
[PASCAL] 평균 보다 높은 학생 구하기
프로그래밍 언어론 2019. 10. 2. 19:30

파스칼 - PASCAL 코드 - { Pascal 평균 성적보다 높은 학생 구하기 } program pasex (input, output); type intlisttype = array [1..99] of integer; var intlist : intlisttype ; listlen, counter, sum, average, result : integer; begin result = 0; sum = 0; readln (listlen); if ((listlen > 0) and (listlen < 100)) then begin { 학생 성적 읽기 } for counter = 1 to listlen do begin readln (intlist[counter]); sum = sum + intlist[counte..

article thumbnail
[C++] 백준 16282번 Black Chain
알고리즘 2019. 10. 2. 15:44

체인을 잘라서 1~N까지의 수를 만들 때 최소 몇번 잘라야하는지 구하는 문제입니다. 먼저 n번 잘랐을 때 최대 만들 수 있는 수를 구했습니다. 1번 = 2 1 4 7 2번 = 3 1 6 1 12 23 3번 = 4 1 8 1 16 1 32 63 4번 = 5 1 10 1 20 1 40 1 80 159 .... 수를 보면 다음의 규칙을 가지고 있습니다. ((n + 1) * 1) + 1 + ((n + 1) * 2) + 1 ((n + 1) * 4) ...... 하지만 이 방식으로 풀면 시간이 오래걸리므로 연산이 많이 필요하므로 1번 자르는것에 대한 최댓값에 대한 규칙을 찾아보면 1. 2 * (i + 1) - 1 2. 4 * (i + 1) - 1 3. 8 * (i + 1) - 1 4. 16 * (i + 1) - 1..

article thumbnail
[C++] 백준 16283번 Farm
알고리즘 2019. 10. 2. 12:04

브루트포스 방식을 이용해서 문제를 풀었습니다. 총 9마리일때 양 염소 1 8 2 7 3 6 4 5 ... 8 1 에 대한 값을 구해서 w와 같으면 카운트를 증가시키고 양과 염소의 수를 저장해둡니다. 총 카운트가 2개 이상이면 해가 2개 이상인 경우이며, 카운트가 1이면 양과 염소의 수를 출력합니다. #include #include #include using namespace std; int a, b; int n, w; int result[2]; int c = 0; void solve(int x, int y) { int num; num = a * x; num += b * y; if (num == w) { result[0] = x; result[1] = y; ++c; } } int main(int argc,..

article thumbnail
[C++] 백준 1789번 수들의 합
알고리즘 2019. 10. 2. 08:56

N개의 자연수의 합이 S일 때 S가 주어지고 N의 최댓값을 구하는 문제입니다. N이 최대이기 위해서는 가능한 많은 수를 써야합니다. 중복되는 수는 사용할 수 없기 때문에 1부터 순차적으로 더해줍니다. 마지막으로 더한 숫자를 이용해서 200에 맞아 떨어지게 해줄 수 있으므로 순차적으로 더해서 S보다 커지면 -1을 해줍니다. #include #include using namespace std; int main(int argc, char* argv[]) { long long n; long long sum = 0; long long count = 1; cin >> n; while (1) { sum += count; if (sum > n) { --count; break; } ++count; } cout

article thumbnail
[C++] 백준 1964번 오각형, 오각형, 오각형...
알고리즘 2019. 10. 2. 08:41

오각형의 점의 개수를 구하는 문제입니다. 첫번째 오각형은 5 두번째 오각형은 7 세번째 오각형은 10 네번째 오각형은 13 다섯번째 오각형은 16 두번째 오각형부터 3씩 증가하는것을 확인할 수 있습니다. #include #include using namespace std; int main(int argc, char* argv[]) { int n; int num; int sum; sum = 5; num = 7; cin >> n; for (int i = 2; i

article thumbnail
[C++] 백준 2965번 캥거루 세마리
알고리즘 2019. 10. 2. 08:31

캥거루가 세마리 있고 한마리의 캥거루가 나머지 두마리 캥거루 사이로 점프를 할 수 있을 때 최대 몇번 점프가 가능한지 구하는 문제입니다. 예제의 경우 3 5 9 3 -> 6 5 6 9 5 -> 7 6 7 9 6 -> 8 7 8 9 총 3번 이동할 수있습니다. 최대 이동 횟수는 1. 가장 큰 수 - 중간 수 - 1 2. 중간 수 - 가장 작은 수 - 1 1, 2번 중 더 큰 수만큼 점프가 가능합니다. #include #include using namespace std; int main(int argc, char* argv[]) { int K[3]; cin >> K[0]; cin >> K[1]; cin >> K[2]; sort(K, K + 3); cout

article thumbnail
[C++] 백준 1075번 나누기
알고리즘 2019. 10. 2. 08:24

N이 주어졌을때 N의 1의 자리와 10의 자리를 바꿔서 F로 나누어떨어지는 가장 작은 수를 구하는 문제입니다. N의 10과 1의 자리 수를 0으로 바꾼후 0~99까지 바꿔서 F로 나누어떨어지는 경우 그 수를 출력해주었습니다. #include #include using namespace std; int main(int argc, char* argv[]) { int n, f; int i; cin >> n; cin >> f; n -= n % 100; for (i = 0; i < 100; ++i) { if ((n + i) % f == 0) { break; } } if (i < 10) { cout

article thumbnail
[C++] 백준 4504번 배수 찾기
알고리즘 2019. 10. 2. 08:17

n이 주어지고 이후에 받는 수들이 n의 배수인지 찾는 문제입니다. 입력받은 수들을 n으로 나누었을때 나머지가 0이면 배수이며, 아닐경우 배수가 아닌것으로 출력해주었습니다. #include #include using namespace std; int main(int argc, char* argv[]) { int n; int num; cin >> n; while (1) { cin >> num; if (num == 0) { break; } if (num % n == 0) { cout

검색 태그