일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- BASYS3
- java
- half adder
- uart 통신
- KEYPAD
- ATMEGA128A
- hc-sr04
- gpio
- soc 설계
- atmega 128a
- DHT11
- verilog
- i2c 통신
- pwm
- D Flip Flop
- LED
- dataflow modeling
- Algorithm
- structural modeling
- FND
- vivado
- Recursion
- Linked List
- test bench
- ring counter
- prescaling
- Edge Detector
- stop watch
- Pspice
- behavioral modeling
- Today
- Total
목록Algorithm (38)
거북이처럼 천천히
1. 빠르게 2진수에서 10진수로 변환할 수 있는 방법은 없는가?2진수로 표현된 숫자들을 16진수로 변환하는 과정은 굉장히 쉽다.아래 표처럼 2진수를 4자리씩 끊어서 16진수로 변환할 수 있다.2진수16진수000000001100102001130100401015011060111710008100191010A1011B1100C1101D1110E1111F 하지만, 2진수로 표현된 숫자들을 10진수로 변환하는 과정은 위와 같이 쉽지 않다.10진수는 0 ~ 9까지만 표현이 가능하며, 1010(A) ~ 1111(F) 는 한 자리 숫자로 표현할 수 없기 때문에 2진수에서 16진수로 변환하는 것 처럼 쉽게 4자리씩 끊어서 읽을 수 없다.★ ★ ★ ★ ★ ★ ★ ★ ★ Q) 그럼, 2진수에서 4자리씩 끊어 10진수를 16..

1. 문제학생의 수를 입력 받은 뒤, 학생 수 만큼 국어, 영어, 수학 점수를 입력해 총점, 평균, 학점을 구하고 총점 순으로 정렬해 출력합니다. 학점은 평균이 90점이상이면 A, 80점 이상이면 B, 70점 이상이면 C, 그 외는 F로 평가합니다. 2. 생각학생의 점수들과 총점, 평균, 학점을 저장해야 하기 때문에 구조체를 사용한다.학생의 수를 입력 받은 뒤, 이를 malloc 함수를 이용하여 학생의 수만큼 동적할당 받는다.Quick Sort 알고리즘을 통해 정렬한다.Padding byte를 고려하여 Padding byte가 최소화 되도록 구조체의 맴버들의 위치를 설정한다. 3. 풀이 및 코드 분석#include #include // Structure typedef struct { unsigne..

1. 문제문제 제목 : 동적 할당을 통해 문자열을 저장 및 출력 2. 생각2.1) 정적 메모리 할당의 한계 및 문제위 예시를 통해 알 수 있듯이 Compile 시점에서 얼마만큼의 문자열과 어느 정도의 길이를 갖는 문자열이 들어올지 모르기 때문에 정적인 메모리 할당을 통해 미리 메모리 공간을 확보하기 힘들다.또한 여유있게 정적 메모리 공간 할당을 받으면 실제로 사용하지 않는 메모리 공간이 발생하여 메모리 자원 낭비가 발생한다. 2.2) 동적 메모리 할당시 주의점동적 메모리 할당을 받으면 2차원 형태로 받아야 할 것이기 때문에 동적 메모리 할당은 포인터 배열 형태를 갖는다.포인터 배열은 각 원소가 포인터이기 때문에 각각의 원소들에 대해서도 동적할당을 받을 필요가 있다. 3. 풀이 및 코드 분석#..

1. 문제문제 제목 : 가로 세로의 합 구하기 2. 생각목표) 문제의 범용성을 높이기 위해 5행 6열 뿐만 아니라 행과 열 값을 받아서 2차원 배열을 생성한 뒤, 그에 대한 각 열과 행의 합을 구하여 2차원 배열의 끝에 저장하자. 가변 길이를 갖는 2차원 배열을 생성하기 위해 malloc 함수 사용중요) 각 열에 대한 1차원 가변 길이를 갖는 배열을 생성하기 위해 추가적으로 malloc 함수 사용(0, 0) 부터 시작해서 값을 대입하는 과정인 초기화 작업 수행각 행과 열의 합을 구해 대입 3. 풀이 및 코드 분석#include #include // Function prototype.void get_size_of_board(unsigned short* max_row, unsigned short* max_..
1. 문제 https://www.acmicpc.net/problem/2775 2775번: 부녀회장이 될테야 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다 www.acmicpc.net 입력 : 첫 번째 줄에 Test case의 수 T가 주어지며, 그다음부터 층수 k, 호수 n이 주어진다 출력 : 각각의 Test case에 대해서 해당 집에 거주민 수를 출력하라. 2. 생각 본 문제는 크게 Recursion과 규칙성, 두 가지 경우로 풀 수 있다. 하지만, Recursion인 경우 모든 경우에 대해서 접근해야 하기 때문에 규칙성을 이용한 풀이보다 시간 면에서 상대적으로 떨어진다. 예를 들어 8층 11호(k=8..

1. 문제 https://www.acmicpc.net/problem/2292 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌 www.acmicpc.net 입력 : 첫째 줄에 N(1 ≤ N ≤ 1,000,000,000)이 주어진다. 출력 : 입력으로 주어진 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나는지 출력 2. 생각 본 문제는 계차 수열을 이용하여 풀었다. 계차 수열 알고리즘을 이용한 이유는 다음과 같다. ex) N = 2 일 때는 2 개의 방을 이동해야 하며, ex) N = 8 일 때는 3 개의 방을 이동해야 한다. 위 몇 가지..
1. Selection sort public class SelectionSort { public static void main(String[] args) { int[] list = {29, 10, 14, 37, 13}; printList(list, "Before"); for(int i=list.length; i>1; i--) { int max = 0; for(int j=1; j

1. 문제 집합을 입력받아서 그 집합의 멱집합을 구하라. 멱집합(Powerset)이란? ▶ 주어진 집합의 모든 부분 집합들로 구성된 집합 2. 생각(Recursion Thinking) 고등학교때 배운 내용을 떠올리며, set A = {a, b, c, d, e, f}가 존재한다고 가정한다. Q) 집합 A의 부분 집합의 갯수는 몇 개인가? 집합의 원소들은 "부분 집합내에 존재하는가?"에 따라서 두 가지 경우의 수를 갖는다. 이를 바탕으로 모든 원소가 존재하지는 공집합 부터 모든 원소가 존재하는 경우까지 경우의 수를 생각하면 집합 A의 부분 집합의 갯수는 2^6 = 32개이다. 2.1. Powerset를 구현하는 알고리즘 아이디어 부분 집합의 갯수를 세는 것처럼 "특정 원소가 부분 집합에 존재하는가?"를 이용..