전체 글 썸네일형 리스트형 15649번 15649번 - N 과 M (1) 개인적으로 이런 간단한 기본 문제가 있으면 좋겠다고 생각했는데 문제가 생겼다. 문제를 풀다보면 응용해서 써야하는 자주 접하는 기본 문제인 것 같다. 그래서 재귀를 이용해서 풀었고 , 비트연산을 이용해보기도 하였다. 12345678910111213141516171819202122232425262728293031323334353637#include int n, m;int num[9];bool used[9];void go(int cnt){ if (cnt == m) { for (int i = 0; i 더보기 extern & static 변수 ( global 과 local 차이점) ■ extern - 다른 파일에 해당 변수(또는 함수)가 존재할 것이라고 가정을 주는 선언 - 실제로 변수가 선언되면서 메모리를 차지하는 것이 아니다 - 해당 변수가 다른 파일에 있을 것이라는 extern 선언만으로 컴파일 가능 ( 링크는 X ) ■ static ( Local ) - 지역 변수에 붙이는 static - 다른 블록이나 함수에서 사용할 수 없다 ( 지역변수의 특성) - 지역 변수의 특성을 갖되, 기억부류는 전역변수 ( DATA 또는 BSS) - 프로그램이 실행되는 동안 메모리에 상주, 블록을 벗어나도 값을 유지 ( 전역 변수의 특성) ■ static ( Global ) - 전역 변수에 붙이는 static - 파일 내에서만 사용하는 전역 변수로 지정 - 다른 파일에서 같은 이름의 전역 변수를 .. 더보기 ARM에서 인터럽트 처리 과정 인터럽트의 개요 ■ Interrupt 디바이스가 입력/출력/에러의 상황에 대한 프로세서의 처리를 요구하는 것. ■ IRQ Pin 인터럽트 요구를 위해 디바이스 별로 한 개씩 갖고 있는 하드웨어 신호 핀. ■ Interrupt Number 각 인터럽트 별로 할당된 번호. 한 개의 디바이스가 여러 개의 번호를 소유 할 수 있다. ■ Interrupt Service Routine 각 인터럽트에 대한 서비스 함수 ■ Interrupt Vector 인터럽트 번호와 인터럽트 서비스 루틴의 순서쌍 ■ Interrupt Vector Table Interrupt Vector 를 모아 놓은 참조 테이블 ■ Interrupt Controller 각 디바이스 별 인터럽트 요구를 일차적으로 처리하여 가장 우선 순위가 높은 인터.. 더보기 ARM 레지스터 간단한 설명 ■ CPSR (Current Program Status Register) & SPSR (Stored Prgoram Status Register) ▶ SVC 모드에서만 접근할 수 있다. ▶ N : 음수, 보다 작은( 더보기 ARM 아키텍쳐 특징 ■ 6가지 Operation 모드가 있다. 모드 사용 User 보통 때 사용 FIQ 빠른 인터럽트 처리시 IRQ 보통 인터럽트 처리시 SVC 시스템 콜 처리시 Abort 메모리 폴트(fault) 처리시 Undef 정의되지 않은 명령어 발생시 User 를 제외한 FIQ, IRQ, SVC, Abort ,Undef 는 Privilege Mode ■ 각 모드 별로 사용할 수 있는 레지스터의 집합이 다르다- 서로 다른 총 37(+3) 개의 레지스터 ■ Operating 모드 별 레지스터 FIQ 같은 경우에는 다른 모드와는 다르게 r8 ~ r12 까지 자신만의 레지스터를 가지고 있다. 이는 데이터를 다른 스택에서 가져올 필요를 줄여주기 때문에 속도가 향상된다. 더보기 5170. 상원이의 직선 긋기 게임 5170. 상원이의 직선 긋기 게임 D5 치고는 굉장히 쉬운 문제였다. 일단 주어진 점의 갯수가 200개 이므로, 나올 수 있는 직선의 갯수는 200C2 로 19900 개가 된다. 따라서 모든 경우의 수를 탐색한다고 하더라도 시간 초과가 나올 수 없는 문제라서 완전탐색을 이용해서 문제를 풀었다. 2중 for문을 통해서 전체의 직선을 모두 구하고, get_incline 함수를 이용해서 직선의 기울기를 중복 생각없이 모두 vector 에 담았다. 그리고 sort 를 이용해서 vector 를 정렬하고, 중복되는 수를 빼가면서 수를 세줬다. 이때 tmp 값을 초기에 10000으로 설정한 이유는, x,y 좌표의 범위가 -1000 에서 1000 사이 이므로 기울기가 가장 클 때는 1000 이다. 따라서 1000보다.. 더보기 4676. 늘어지는 소리 만들기 4676. 늘어지는 소리 만들기 문자열을 이용한 간단한 문제였다. 하이픈이 들어가는 위치를 배열에 모두 저장해서 합산한다. ( 길이가 20까지 이므로 하이픈이 들어갈 수 있는 위치는 0~20이다) 그리고 다시 for문을 돌면서 해당하는 위치에 그 숫자만큼 입력해서 정답을 구한다. 123456789101112131415161718192021222324252627282930313233343536373839#include#includeusing namespace std; int main(){ int tc; cin >> tc; for (int t = 1; t > s; cin >> h_num; for (int i = 0; i > pos; total[pos]++; } for (int i = 0; i 더보기 4698. 테네스의 특별한 소수 4698. 테네스의 특별한 소수 에라토스테네스의 체를 이용하면 쉽게 풀 수 있는 소수 문제. main 함수가 실행하고 난 뒤에 곧바로 에라토스테네스의 체를 이용하여 모든 소수를 구할 수 있다. (이때 1은 따로 처리를 해줘야 한다) 그리고 구해진 소수 중에서 주어진 범위안의 수를 찾고, 그 수가 D라는 숫자를 포함하는지를 검사하면 된다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657#include#include#define MAX 1000001using namespace std; bool isPrime[MAX]; void era(){ for (int i = 2; .. 더보기 이전 1 ··· 6 7 8 9 10 11 12 ··· 61 다음