![[컴퓨터 구조] 명령어 사이클과 인터럽트](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FP4JbY%2Fbtr8OW2BeYs%2FAAAAAAAAAAAAAAAAAAAAAE-QaSpI_YC4AYxu6E9F11eBDaFusCHvYooQlzjyFWht%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DQGceA27JIvaEpdDSAegcbQu1JKQ%253D)
이 글은 혼자 공부하는 컴퓨터 구조 + 운영체제 (저자 : 강민철)의 책과 유튜브 영상을 참고하여 개인적으로 정리하는 글임을 알립니다. CPU는 명령어를 처리하는 과정에는 정해진 흐름이 있고, CPU는 그 흐름을 반복하여 명령어들을 처리해 나간다. 명령어를 정형화된 흐름으로 처리하는 것을 명령어 사이클이라고 한다. CPU는 명령어 사이클을 통해 작업을 처리해 나가는데, 이 흐름을 끊어지게 하는 상황이 발생하는데 이것을 인터럽트라고 한다. 명령어 사이클 CPU가 메모리에 저장된 명령어 하나를 실행한다고 하면, 가장 먼저 해야 할 일은 명령어를 CPU로 가져와야 한다. 명령어를 가져왔으면 명령어를 실행해야 한다. 이것을 실행 사이클이라고 한다. 인출 사이클 : 메모리에 있는 명령어를 가져오는 단계 실행 사이..
![[C++] 백준 - 2752번 문제 (세수 정렬)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FumTD8%2Fbtr8InAIqHp%2FAAAAAAAAAAAAAAAAAAAAAOcGdOn2iuczNE3UZtWIDkpdTRoGpoDMRBoCRQiFH-sj%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3Dw1HMQc7UFHU0fXWT4bXTBkGXa%252FI%253D)
문제설명 소스코드 #include using namespace std; int main() { int arr[3]; for (int i = 0; i > arr[i]; } int tmp; for (int i = 0; i arr[j]) { tmp = arr[j]; arr[j] = arr[i]; arr[i] = tmp; } } } for (int i = 0; i < 3; ++i) { cout
![[C++] 백준 - 1264번 문제 (모음의 개수)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FOUD8k%2Fbtr8gyiteg6%2FAAAAAAAAAAAAAAAAAAAAAJSrygd0MknysDAr2KaMfk1X4t9VxVwEcsf4kJOc42pu%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DDTtcd8L2zds%252FmdzHkP0az4jaWmE%253D)
문제설명 소스코드 #include #include using namespace std; int main() { string input; while (true) { int count = 0; getline(cin, input); for (int i = 0; i < input.length(); ++i) { if (input[i] == 'a' || input[i] == 'e' || input[i] == 'i' || input[i] == 'o' || input[i] == 'u' || input[i] == 'A' || input[i] == 'E' || input[i] == 'I' || input[i] == 'O' || input[i] == 'U') ++count; else if (input[i] == '#') r..
![[C++] 백준 - 25372번 문제 (성택이의 은밀한 비밀번호)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FcRqXdq%2Fbtr8fZTRubK%2FAAAAAAAAAAAAAAAAAAAAAACoyOLoIWwZiQ5sZV5QKR1Fl581hIiqrHq5zUn9VarD%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DulDDcamh8cJz26BESxbhAxMZqHk%253D)
문제설명 소스코드 #include using namespace std; int main() { int input; string pw; cin >> input; for (int i = 0; i > pw; if (pw.length() >= 6 && pw.length()
![[C++] 백준 5단계 - 2444번 문제(별 찍기 -7)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FdVSOmS%2Fbtr8gwc8AvQ%2FAAAAAAAAAAAAAAAAAAAAADYFW-km2A8feIlCPmNtgsOCg4opvQ4WpKGMMY9fvNLZ%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3Dnk%252F%252BZpi9tAAV3AY2uue3x2MvEM8%253D)
문제설명 소스코드 #include using namespace std; int main() { int input; cin >> input; for (int i = 1; i
![[C++] 백준 - 27433번 문제 (팩토리얼 2)(재귀 사용X)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2F8FxD3%2Fbtr7Xc5QjFh%2FAAAAAAAAAAAAAAAAAAAAALSzywOsVHSsFtUbXNgwqAvVAy06TEYrFNRR5xytUX-E%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DP3j4jySyWsjABCXbDAq2l%252BKiCR4%253D)
문제설명 소스코드 #include using namespace std; int main() { int input; cin >> input; if (input == 0) { cout
![[C++] 백준 5단계 - 5622번 문제](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FuQrX4%2Fbtr7NQW6sO6%2FAAAAAAAAAAAAAAAAAAAAADJCOzObntNtvD9h--WRJajZXwgI9PerwqpDvaKGOZLc%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3D7%252F9RJ7htCeF68lXe%252Bva62QrR%252BGU%253D)
문제설명 소스코드 #include using namespace std; int main() { string input; int sum = 0; cin >> input; for (int i = 0; i < input.length(); ++i) { if (input[i] == 'A' || input[i] == 'B' || input[i] == 'C') sum += 3; else if (input[i] == 'D' || input[i] == 'E' || input[i] == 'F') sum += 4; else if (input[i] == 'G' || input[i] == 'H' || input[i] == 'I') sum += 5; else if (input[i] == 'J' || input[i] == 'K' ..
![[C++] 백준 5단계 - 2908번 문제](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbaPyPn%2Fbtr7n06XWdR%2FAAAAAAAAAAAAAAAAAAAAAPd0mgtq5tpH4eJQCHYtPo4Lxf-3drZb4R-gUeYBKn4V%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DmagLKTCjsR%252Fc9u%252FNomR4pWl9ZS0%253D)
문제설명 소스코드 #include #include using namespace std; int main() { string a; string b; cin >> a >> b; for (int i = 0; i d ? cout