본문 바로가기

분류 전체보기

(308)
[Computer Architecture] 명령어 집합 분류 + 한국항공대학교 길현영 교수님의 컴퓨터구조론 과목 내용을 정리한 글입니다. 피연산자 수와 명령어 집합 명령어 구성 - 연산 부호(opcode): 어떤 연산을 수행할 것인가 - 피연산자(operand): 연산의 대상이 되는 데이터(들)의 위치 또는 값 등의 정보 피연산자 수에 따른 컴퓨터구조 종류 (시스템 가정) 1) 스택(Stack) 컴퓨터의 0-주소 명령어 ex) ADD => S[top--] + S[top--] -> S[top] 2) 누산기(Accumulator) 컴퓨터의 1-주소 명령어 ex) ADD X => Acc R1 R1 R1 명령어의 길이가 짧다. 3. 스택 안의 데이터를 접근하려는 경우, 스택 내 데이터의 위치에 따라 데이터 접근 시간이 다르다. - 위에 있는 데이터들을 Pop하고, 원하는..
[백준/Python] 2×n 타일링 문제 https://www.acmicpc.net/problem/11726 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net 문제 요약 2 × n 크기의 직사각형을 1 × 2, 2 × 1 타일로 채우는 방법의 수를 출력한다. 코드 n = int(input()) dp = [0] * (1001) # dp[i]는 i번째 칸까지 1*2, 2*1 타일로 채우는 방법의 수 dp[1] = 1 dp[2] = 2 for i in range(3, n + 1): dp[i] = (dp[i-1] + dp[i-2]) % 10007 print(dp[n]) 코드 ..
[Embedded Software] PWM 실습 + 한국항공대학교 최차봉 교수님의 임베디드 SW 과목 내용을 정리한 글입니다. PWM (Pulse - Width - Modulation) 디지털 시그널을 이용하여 아날로그 신호를 모방하는 방법이다. 주어진 시간동안 신호가 높은 상태(1)와 낮은 상태(0)을 반복하는 주기가 존재한다. 주기동안 높은 상태(1)의 지속 시간인 Pulse Width를 조절하여 출력을 제어한다. analogWrite(pin, DutyValue) + DutyValue: 0 ~ 255 => LED 밝기를 제어할 수 있다. LED가 점점 밝아졌다 꺼졌다를 반복하는 아두이노를 제작하라. + LED의 극성에 주의해야한다. (+: 긴 부분, -: 짧은 부분) void setup() {..
[Algorithm] 정렬: 계수 정렬, 선택 문제 + 항공대학교 이인복 교수님의 알고리즘 해석 및 설계 과목 내용를 정리한 글입니다. 계수 정렬 (counting sort) - 범위가 작은 수들을 빠르게 정렬할 때 사용된다. 1. 각 수가 나온 횟수를 센다. (자신보다 작은 원소의 개수를 센다.) 2. 1 결과를 이용하여 각 수보다 작은 숫자가 몇 개 있는지 센다. (누적합 이용) ex) {5, 9, 3, 6, 9, 5, 2, 10, 1} 1. 하나의 숫자를 찾아갈 수 있는 시간을 Θ(1)이라고 가정할 때, 각 숫자가 나온 횟수를 세는데 Θ(n) 2. 다시 숫자를 정렬된 리스트에 채워넣는데 Θ(n) => Θ(n) ex) {12387, 90123, 39735, 9012344} - (최대값 - 최소값)의 범위 수..
[백준/Python] 9095번: 1, 2, 3 더하기 문제 https://www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net 문제 요약 정수 n을 입력 받고, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. (1 ≤ n ≤ 10) ex) 정수 4를 1, 2, 3의 합으로 나타내는 방법 1 + 1 + 1 + 1 1 + 1 + 2 1 + 2 + 1 2 + 1 + 1 2 + 2 1 + 3 3 + 1 코드 T = int(input()) dp =[0] * (11) # dp[i]는 정수 i까지 1, 2, 3으로 나타낼 수 있는 방법의 수 dp[1] = 1 # 1 dp[2] = 2 # 1 + 1, 2 dp[3] ..
[백준/Python] 1149번: RGB거리 문제 https://www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 문제 요약 RGB거리에 집이 N개 있다. (거리는 선분으로 나타낼 수 있다.) 모든 집들을 빨강, 초록, 파랑 중 하나의 색으로 칠해야한다. 각각의 집을 빨강, 초록, 파랑으로 칠하는 비용이 주어졌을 때, 규칙을 만족하면서 모든 집을 칠하는 비용의 최솟값을 출력한다. 규칙 1. 1번 집의 색은 2번 집의 색과 같지 않아야 한다. 규칙 2. N번 집은 N-1번 집의 색과 ..