본문 바로가기

전체 글

(46)
[알고리즘] 백준 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
[임베디드] C++ 가상함수의 inline화, Devirtualization - Don 임베디드 임베디드 환경에서 C를 많이 사용한다는 것은 두 말하면 입 아픈 소리이다. C++는 C 보다는 무겁지만, 객체지향 개념을 지원하기 때문에 방대한 양의 코드를 관리하기 편리한 이점이 있다. 게다가 기존의 코드들은 거의 C로 짜여 있기 때문에, C의 문법을 그대로 사용할 수 있다는 점이 큰 메리트이다. 그렇기에 임베디드 환경에서도 C++를 사용하는 곳이 많아졌다. 그런데 문제는, C++에서 지원하는 몇몇 기능이 코드 관리 측면에서는 효율적이나, 성능 측면에서 사용하기 부담스러운 요소가 있다. 많은 경우에 성능은 코드 구조를 해쳐가면서라도(ㅠㅠ) 달성해야 하는 제 1목표이기 때문이다. 그 부담스러운 요소 중 하나가 바로 가상화 or 가상 함수(virtualization)로 인한 virtual table sea..
[알고리즘] 백준 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..