본문 바로가기

분류 전체보기

(209)
[ 컴퓨터 구조 ] 전체적인 컴퓨터 구조 [ 출처 ]혼자 공부하는 컴퓨터 구조 + 운영체제 01강https://www.youtube.com/watch?v=kFWP6sFKyp0[ 컴퓨터가 이해하는 정보 ]데이터= 숫자, 문자, 이미지, 동영상과 같은 정적인 정보= 0과 1로 표현 명령어= 컴퓨터를 실질적으로 움직이는 정보= 데이터는 명령어를 위한 일종의 재료[ 컴퓨터의 네 가지 핵심 부품 ]1. CPU= 메모리에 저장된 값을 읽어 들이고, 해석하고, 실행= ALU + 레지스터 + 제어장치 ALU = 계산기레지스터 = 임시 저장 장치제어장치 = 제어 신호를 보내고, 명령어를 해석하는 장치 2. 메모리= 프로그램이 실행되기 위해서는 메모리에 저장되어 있어야 함= 현재 실행되는 프로그램의 명령어와 데이터를 저장= 전원이 꺼지면 저장된 값이 날라감 ( ..
[ 백준 / C++ ] 2661 : 좋은수열 [ 문제 ] 2661번: 좋은수열 [ 접근방법 ] 백트래킹으로 접근했기에 최악의 경우 O(3 ^ n)의 시간복잡도가 나올 수 있다. 그러나 제일 작은 수열만 찾기도 하고, 많은 경우 isGood 함수에서 가지치기되어 시간 내에 문제를 풀 수 있다. 좋은 수열인지 검사하는 함수( isGood )를 따로 만들어서 보기 쉽게 만들었다. [ 소스코드 ] #include #include using namespace std;int n;string str = "";bool isGood(){ for(int i = 1; i > n; f(0); return 0;}
[ 백준 / C++ ] 16926 : 배열 돌리기 1 [ 문제 ] 16926번: 배열 돌리기 1 [ 접근방법 ] 제일 바깥 테두리부터 시작하여 안쪽으로 들어가며 회전 결과를 저장하였다. 테두리에 속하는 숫자들을 큐에 넣은 후, 큐 앞의 숫자들을 뒤에 넣음으로써 회전을 처리했다. [ 소스코드 ] #include #include #include using namespace std;int n, m, t;int arr[305][305], brr[305][305];int main(){ ios::sync_with_stdio(0); cin.tie(0); cin >> n >> m >> t; for(int i = 0; i > arr[i][j]; for(int i = 0; i que; for(int j = i; j i; j--)qu..
[ 백준 / C++ ] 2212 : 센서 [ 문제 ] 2212번: 센서 [ 접근방법 ] 일단 집중국을 최대한 많이 설치해야 수신 가능한 영역 길이의 합이 작게 나온다. 예제 1은 집중국을 2, 7에 설치할 때 최솟값이 나온다. (다른 방법도 있음) 1, 3에     위치한 센서는 2에 위치한 집중국에 연결되고,6, 7, 9에 위치한 센서는 7에 위치한 집중국에 연결된다. 1 ~ 3, 6 ~ 9 각각을 묶음으로 생각하면 3 ~ 6이 버려지는 구간인데,이 버려지는 구간을 최대로 설정하면 원하는 최솟값을 구할 수 있다. 즉, 센서 사이의 거리가 큰 구간을 버려지는 구간으로 설정하면 원하는 최솟값을 구할 수 있다. [ 소스코드 ] #include #include #include using namespace std;bool cmp(const int &a..
[ 백준 / C++ ] 1783 : 병든 나이트 [ 문제 ] 1783번: 병든 나이트 [ 접근방법 ] 이동 횟수가 4번보다 작으면 똑같은 방법으로 3번 이동해도 된다.따라서 이동횟수가 4번보다 작은 경우와 아닌 경우를 나누어 생각해야 된다. 또한, 세로 길이가 3보다 작으면 시행할 수 없는 이동 방법이 존재한다.따라서 세로 길이에 따른 경우도 나누어 생각해야 된다. [ 소스코드 ] #include using namespace std;int n, m, ans;int main(){ ios::sync_with_stdio(0); cin.tie(0); cin >> n >> m; if(n
[ 백준 / C++ ] 19237 : 어른 상어 [ 문제 ] 19237번: 어른 상어 [ 접근방법 ] 상어의 이동하기, 쫓아내기, 냄새 뿌리기를 각각 함수로 구현하여 main 함수를 깔끔하게 만들었다. [ 소스코드 ] #include using namespace std;struct Cell{ int smellNum, smellTime, sharkNum;};struct Shark{ int x, y, curDir, priorDir[5][5]; bool isDead = false;};int n, m, k, sharkCount, timeElapsed;Cell grid[25][25];Shark sharks[405];int dx[5] = {0, -1, 1, 0, 0};int dy[5] = {0, 0, 0, -1, 1};void init(){ ..
[ 백준 / C++ ] 16236 : 아기 상어 [ 문제 ] 16236번: 아기 상어 [ 접근방법 ] 먹을 수 있는 물고기를 BFS를 통해 탐색하면서 위치 및 거리를 저장한다. 그 후, 거리가 가까우면서 가장 위쪽 및 왼쪽에 있는 물고기를 정렬하여 찾아낸다. [ 소스코드 ] #include #include #include #include using namespace std;struct Pos { int x, y;};struct Shark { Pos pos; int size, eat;};int n, a[25][25], t = 0;Shark shark;bool cmp(const pair &p, const pair &q) { if (p.second != q.second) return p.second findFish(){ int ..
[ 백준 / C++ ] 1963 : 소수 경로 [ 문제 ] 1963번: 소수 경로 [ 접근방법 ] 미리 소수를 선별 및 각 번호별 인접한 숫자를 저장한다. 그 후, 입력에 따른 값을 BFS를 통해 계산한다. [ 소스코드 ] #include #include #include #include using namespace std;bool isPrime[10000];vector adjacentNum[10000];void generatePrimes(){ fill(isPrime + 2, isPrime + 10000, true); for(int i = 2; i = 1000 && isPrime[cnt]){ adjacentNum[i].push_back(cnt); } ..