본문 바로가기

알고리즘 문제풀이

(39)
[알고리즘] 백준 2581번 "소수" (C/C++) - Don 임베디드 문제 요약: 자연수 M과 N 이 주어질 때, M이상 N 이하의 자연수 중 소수인 것을 합한 결과와, 이들 소수 중 최소값을 찾은 결과를 출력하라. 제약: 제한 시간 1초, 메모리 128MB M,N M >> N; for (int i = M; i
[알고리즘] 백준 1978번 "소수 찾기" (C/C++) - Don 임베디드 문제 요약: 주어진 자연수 N개 (a0, a1, a2 ... ,ai ... ,aN) 중 소수의 개수를 출력하는 프로그램을 작성하시오. 제약: 제한 시간 2초, 메모리 128MB, N N; while (N-- > 0) { cin >> nTmp; if (bIsPrime[nTmp] == true) // 소수인 경우 Count up. { nCount++; } } cout
[알고리즘] 백준 10757번 "큰 수 A+B" (C/C++) - Don 임베디드 문제 요약: 두 큰 수 A, B를 입력받은 다음, A+B 를 출력하는 프로그램을 작성하시오. 제약: 제한시간 1초, 메모리 256MB, 0 < A, B < 10^10000 예제 1 입력. 예제 1 출력. 9223372036854775807 9223372036854775808 18446744073709551615 예제 2 입력. 예제 2 출력. 50 50 100 정답 코드: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 #include #include using na..
[알고리즘] 백준 2839번 "설탕 배달" 문제 풀이 (C/C++) - Don 임베디드 상근이는 포장된 설탕을 배달하는 일을 한다. 정확하게 N kg의 설탕을 배달해야 하는데, 설탕은 5kg과 3kg으로 포장되어 있다. 규칙 1. 상근이는 최대한 적은 개수의 봉지로 N kg을 만들어 배달한다. 규칙 2. 정확하게 N kg가 되지 않는 경우에는 배달하지 않는다. 입력으로 숫자 N 이 주어질 때, 상근이가 가져갈 봉지의 개수를 구하는 프로그램을 작성하시오. 제약: 시간 제한 1초, 메모리 제한 128MB 3 N; // 정답이 없는 경우에 출력할 값을 초기 값으로 설정. nAnswer = -1; // N에 들어갈 수 있는 5의 최대 개수. nMaxFive = N / 5; switch (N % 5) // 5로 나누었을 때 나머지에 따라 case 별로 계산. { case 0: nAnswer = N ..
[알고리즘] 백준 2775번 "부녀회장이 될테야" 문제 풀이 (C/C++) - Don 임베디드 한 복층의 아파트가 있다. 아파트 각 호수에 사는 사람의 수에는 규칙이 존재한다. [규칙 1] "a층의 b 호에 사는 사람의 수는 자신의 아래 (a-1) 층 1호 부터 b호 까지 사는 사람들의 수를 더한 만큼이다." [규칙 2] "층수는 0층~14층 까지 있으며, 호수는 1호~ 14호 까지 있다." [규칙 3] "아파트 0층 각 i호 에는 i명의 사람이 살고 있다." [규칙 4] "아파트에 비어있는 집은 없고, 모든 거주민들이 위 규칙을 지키고 있다." 첫째 줄에 Test Case의 수 T가 주어진다. 각 Test Case 마다 입력으로 정수 k(층 수), n (호수)가 주어진다. 각 Test Case에 대해서 해당 집에 거주하는 사람의 수를 구하라. 제약: 제한 시간 1초, 메모리 128MB (1 T;..
[알고리즘] 백준 10250번 "ACM 호텔" 문제 풀이 (C/C++) - Don 임베디드 직사각형으로 생긴 ACM 호텔이 있다. 각 층에 W 개의 방이 있는 H 층 건물이다. (1 > W >> N; // 층 수 계산 후 decimal 두 자리 shift nTmpFloor = ((N % H) == 0) ? H : (N % H); nTmpFloor *= 100; // 호수 계산 nTmpUnit = ((N % H) == 0) ? (N / H) : ((N / H) + 1); // 최종 호수 계산. nRetValue = nTmpUnit + nTmpFloor; cout
[알고리즘] 백준 2869번 "달팽이는 올라가고 싶다." (C/C++) - Don 임베디드 문제 요약: 달팽이가 길이 V 미터의 나무를 오른다. 낮에는 A 미터를 올라가고, 밤에는 B 미터를 미끄러져 내려온다. 정상에 올라간 이후에는 미끄러지지 않는다. 주어진 A, B, V 에 따라 올라가는 데 며칠이 걸릴 것인지 구하는 프로그램을 작성하라. 제약: 제한시간 0.15초, 메모리 128MB, 1 > B >> V; // 거꾸로 정상에서부터 생각한다. // 마지막 Step은 무조건 A 만큼. nReturnVal = 1; nTmpDist = (V - A); // 남은 거리 (V - A) 는 // 하루에 갈 수 있는 거리 (A-B) 로 몇 번에 걸쳐 가야하는지 계산. if ((nTmpDist % (A - B)) == 0) { // 나누어 떨어지는 경우 그대로 계산. nReturnVal += (nTmpD..