728x90

프로그래밍 410

임베디드 시스템(Embedded System)의 구조 및 설계, 고려요소

시스템 기본 구조 HW(CPU, Memory, I/O Device) + SW(Applicaiton Software, Library, Operating System) 임베디드 HW는 범용 컴퓨터와 유사한 구성이나, 사용환경 목적에 따른 최적화가 다르며 대부분의 범용 CPU를 사용하지만 목적에 따른 메모리와 I/O 장치 유형 변경. 시스템이 간단한 경우 SW는 Application(응용 SW)로 구동 가능하며, OS와 라이브러리는 생략하는 경우도 있음. 기본인 경우 HW와 SW의 공조 설계(Co-Design)이 필요하기 때문에 범용 컴퓨터와는 다른 방식으로 접근해야 함. 설계목표 1. 고성능 시스템복잡한 기능, 다양한 UI, 멀티미디어 처리, 유무선 네트워크 기능 등을 처리해내는 시스템 2. 실시간 처리능력..

백준 알고리즘] 11726 - 2xn 타일링

시간 제한 : 1 초메모리 제한 : 256 MB 문제2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. l l = l 입력첫째 줄에 n이 주어진다. (1 ≤ n ≤ 1,000) 출력첫째 줄에 2×n 크기의 직사각형을 채우는 방법의 수를 10,007로 나눈 나머지를 출력한다. 소스코드 #include using namespace std; int DP(int n) { int* table = new int[n + 1]; table[0] = 1; table[1] = 1; for (int i = 2; i > n; cout

백준 알고리즘] 9461번 - 파도반 수열(ACM-ICPC 2013 Daejeon)

시간 제한 : 1 초메모리 제한 : 128 MB 문제오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의 길이를 k라 했을 때, 그 변에 길이가 k인 정삼각형을 추가한다. 파도반 수열 P(N)은 나선에 있는 정삼각형의 변의 길이이다. P(1)부터 P(10)까지 첫 10개 숫자는 1, 1, 1, 2, 2, 3, 4, 5, 7, 9이다. N이 주어졌을 때, P(N)을 구하는 프로그램을 작성하시오. 입력첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, N이 주어진다. (1 ≤ N ≤ 100) 출력각 테스트 케이스 마다 P(N)을 출력한..

C++에서 구조체와 클래스 차이

최근까지 흔한 커리큘럼이 C를 배우고 C++로 넘어가는 과정이었다. 두 언어를 완전히 다르게 보는 시각에서 접근해서인지는 몰라도, C++에서 구조체와 클래스의 차이를 잘못 이해하고 있는 사람들이 여럿 있는 듯 하다. 특히 C에서의 struct를 가지고 와서 C++의 struct와 동일시하면서, C++에서는 struct는 무조건 금기시 되어야 하는 것으로 분류해 무조건 class를 쓰는 게 옳다고 생각하는 오개념을 가진 사람들도 있었다. C++에서의 struct와 class의 차이를 C의 struct와 C++의 class로 잘못 비교하고 있다는 것을 알지 못한 채로 개념이 굳어져 가는 사람들이 많은 것 같다. C++을 대하는 태도와 관심 정도에 따라 이럴 수 있다고 생각하기 때문에 이를 혼동한다고 해서 큰..

백준 알고리즘] 1149번 - RGB거리

시간 제한 : 2 초메모리 제한 : 128 MB 문제RGB거리에 사는 사람들은 집을 빨강, 초록, 파랑중에 하나로 칠하려고 한다. 또한, 그들은 모든 이웃은 같은 색으로 칠할 수 없다는 규칙도 정했다. 집 i의 이웃은 집 i-1과 집 i+1이다. 처음 집과 마지막 집은 이웃이 아니다. 각 집을 빨강으로 칠할 때 드는 비용, 초록으로 칠할 때 드는 비용, 파랑으로 드는 비용이 주어질 때, 모든 집을 칠할 때 드는 비용의 최솟값을 구하는 프로그램을 작성하시오. 입력첫째 줄에 집의 수 N이 주어진다. N은 1,000보다 작거나 같다. 둘째 줄부터 N개의 줄에 각 집을 빨강으로 칠할 때, 초록으로 칠할 때, 파랑으로 칠할 때 드는 비용이 주어진다. 출력첫째 줄에 모든 집을 칠할 때 드는 비용의 최솟값을 출력한다..

백준 알고리즘] 1094번 - 막대기

문제지민이는 길이가 64cm인 막대를 가지고 있다. 어느날, 그는 길이가 Xcm인 막대가 가지고 싶어졌다. 지민이는 원래 가지고 있던 막대를 더 작은 막대로 자른다음에, 풀로 붙여서 길이가 Xcm인 막대를 만드려고 한다. 막대를 자르는 가장 쉬운 방법은 절반으로 자르는 것이다. 지민이는 아래와 같은 과정을 거쳐서 막대를 자르려고 한다. 지민이가 가지고 있는 막대의 길이를 모두 더한다. 처음에는 64cm 막대 하나만 가지고 있다. 이 때, 합이 X보다 크다면, 아래와 같은 과정을 반복한다.가지고 있는 막대 중 길이가 가장 짧은 것을 절반으로 자른다.만약, 위에서 자른 막대의 절반 중 하나를 버리고 남아있는 막대의 길이의 합이 X보다 크거나 같다면, 위에서 자른 막대의 절반 중 하나를 버린다.이제, 남아있는..

백준 알고리즘] 2460 - 지능형 기차2(KOI 2011 지역본선)

시간 제한 : 1 초메모리 제한 : 128 MB 문제최근에 개발된 지능형 기차가 1번역(출발역)부터 10번역(종착역)까지 10개의 정차역이 있는 노선에서 운행되고 있다. 이 기차에는 타거나 내리는 사람 수를 자동으로 인식할 수 있는 장치가 있다. 이 장치를 이용하여 출발역에서 종착역까지 가는 도중 기차 안에 사람이 가장 많을 때의 사람 수를 계산하려고 한다. 단, 이 기차를 이용하는 사람들은 질서 의식이 투철하여, 역에서 기차에 탈 때, 내릴 사람이 모두 내린 후에 기차에 탄다고 가정한다. 내린 사람 수탄 사람 수1번역(출발역)0322번역3133번역28254번역1755번역21206번역1107번역12128번역429번역0810번역(종착역)210 예를 들어, 위와 같은 경우를 살펴보자. 이 경우, 기차 안에 ..

오픈소스 프로젝트(Open Source Project)

- 자유로운 재배포오픈소스 바탕의 소프트웨어의 자유로운 배포 허용사용된 오픈 소스에 대한 일말의 비용도 받지 않아야 할 것 - 원시 코드최소 실비로 원시코드 구할 수 있고, 고의로 가독성을 저해시키지 않아야 함.이에 기반해 검토 후 오픈 소스 라이센스를 부여함. - 파생 저작물개작과 파생 저작물을 허용하고, 파생된 저작물은 원본 오픈 소스에 적용된 라이센스가 적용. - 저작자의 원시 코드 원형 유지프로그램 수정 목적의 패치 파일 배포 허용에 한해 변경된 원시 코드의 배포 제한이 가능함. 변경된 원시 코드로 만들어진 결과물의 배포 허용. - 개인이나 단체, 분야에 대한 차별 금지특정 개인, 특정 단체, 분야에 대한 차별 금지. - 라이센스 배포프로그램이 첨부된 권리는 별도의 라이센스 적용하지 않으며 재배포..

백준 알고리즘] 10804 - 카드 역배치(KOI 2015 지역본선)

시간 제한 : 1 초메모리 제한 : 256 MB 문제1부터 20까지 숫자가 하나씩 쓰인 20장의 카드가 아래 그림과 같이 오름차순으로 한 줄로 놓여있다. 각 카드의 위치는 카드 위에 적힌 숫자와 같이 1부터 20까지로 나타낸다. 이제 여러분은 다음과 같은 규칙으로 카드의 위치를 바꾼다: 구간 [a, b] (단, 1 ≤ a ≤ b ≤ 20)가 주어지면 위치 a부터 위치 b까지의 카드를 현재의 역순으로 놓는다. 예를 들어, 현재 카드가 놓인 순서가 위의 그림과 같고 구간이 [5, 10]으로 주어진다면, 위치 5부터 위치 10까지의 카드 5, 6, 7, 8, 9, 10을 역순으로 하여 10, 9, 8, 7, 6, 5로 놓는다. 이제 전체 카드가 놓인 순서는 아래 그림과 같다. 이 상태에서 구간 [9, 13]이..

임베디드 시스템(Embedded System)의 기본

임베디드 시스템(Embedded System)은 휴대전화, 자동차, 스마트홈, 로봇 등의 거의 모든 전자 정보 통신 기기에 존재하며, 제품 및 시스템 일부를 구성하는 내장형 시스템으로 일종의 컴퓨터로 볼 수 있음. 범용 컴퓨터와 유사한 구조를 갖고 있지만, 특정 용도에 최적화된 컴퓨터 시스템 가전제품, 전자제품, 제어장치 등에 전기/전자 회로에 마이크로프로세서가 효과적 제어하는 경우가 예시.특히 자동차, 스마트폰 같은 경우는 임베디드 시스템의 집약체로 볼 수 있음.자동차(ABS, 브레이크, 에어백, 네비게이션 등 자동차의 모든 시스템들) 임베디드를 통해 시스템 기능의 다양화, 고도화를 취해 지능, 성능개선, 확장성을 확보할 수 있음. 특징 - 특정 운용분야 특화로 성능 및 컴퓨팅 자원에 대한 효율이 범용..

728x90