시스템 (System)시스템 (System)정의 : 어려 구성 요소(하드웨어, 소프트웨어, 사람, 절차 등)가 상호작용하여 하나의 목표를 달성하도록 조직된 집합 (구성요소들이 상호작용하는 집합체 = 시스템)공통 속성입력 (Input) ➡️ 처리 (Processing) ➡️ 출력 (Output) ➡️ 피드백 (Feedback)경계 (Boundary) : 시스템을 외부 환경과 구분하는 경계가 존재컴퓨팅 시스템 (Computing System)컴퓨팅 시스템의 목적범용적인 연산, 저장, 통신 기능을 제공해 다양한 응용 프로그램을 실행컴퓨팅 시스템의 구성하드웨어 : CPU, 메모리, 저장장치, I/O 장치, 네트워크 어댑터 등시스템 소프트웨어 : BIOS/UEFI ➡️ OS ➡️ Drvier · Runtime응용..
정보 단위비트 (bit)컴퓨터가 이해하는 가장 작은 정보 단위binary digit의 줄임말로, 하나의 비트는 0 또는 1의 값을 가짐일반적으로 n bit는 $ 2^n $ 가지의 정보 표현이 가능바이트 (byte)비트를 8개 묶은 단위 (1 byte = 8 bit)컴퓨터에서 데이터를 처리하는 기본 단위문자 하나(ex. 알파벳, 숫자, 특수기호 등)를 표현하는 데 일반적으로 1 byte 사용기타킬로바이트 (kB) : 바이트를 1,000개 묶은 단위 (1 kB = 1,000 byte)메가바이트 (MB) : 킬로바이트를 1,000개 묶은 단위 (1 MB = 1,000 kB)기가바이트 (GB) : 메가바이트를 1,000개 묶은 단위 (1 GB - 1,000 MB)테라바이트 (TB) : 기가바이트를 1,000개 ..
컴퓨터가 이해하는 정보컴퓨터는 오직 0과 1로 표현된 정보(이진수 형태의 정보)만 이해할 수 있음데이터 : 숫자, 문자, 이미지, 동영상 등 정적인 정보명령어 : 데이터를 처리하고 컴퓨터를 동작시키는 지시 정보컴퓨터의 핵심 부품중앙처리장치 (CPU, Central Processing Unit)주기억장치 (메모리, Main Memory)보조기억장치 (Secondary Storage)입출력장치 (Input / Output Devices)주기억장치는 크게 RAM(Random Acceess Memory)과 ROM(Read Only Memory)으로 구분되는데, 주로 메모리라는 용어는 RAM을 지칭함전체 구성 구조가장 큰 사각형은 메인보드이며, 메인보드 내부에는 시스템 버스가 존재 ➡️ 시스템 버스를 통해 핵심 ..
https://www.acmicpc.net/problem/1976문제동혁이는 친구들과 함께 여행을 가려고 한다. 한국에는 도시가 N개 있고 임의의 두 도시 사이에 길이 있을 수도, 없을 수도 있다. 동혁이의 여행 일정이 주어졌을 때, 이 여행 경로가 가능한 것인지 알아보자. 물론 중간에 다른 도시를 경유해서 여행을 할 수도 있다. 예를 들어 도시가 5개 있고, A-B, B-C, A-D, B-D, E-A의 길이 있고, 동혁이의 여행 계획이 E C B C D 라면 E-A-B-C-B-C-B-D라는 여행경로를 통해 목적을 달성할 수 있다.도시들의 개수와 도시들 간의 연결 여부가 주어져 있고, 동혁이의 여행 계획에 속한 도시들이 순서대로 주어졌을 때 가능한지 여부를 판별하는 프로그램을 작성하시오. 같은 도시를 여..
삼성 코딩테스트 기출 문제 설명: 메이즈 러너 | 코드트리 삼성 코딩테스트 기출 문제 설명: 메이즈 러너 | 코드트리삼성전자 코딩테스트 기출 문제 메이즈 러너의 상세 설명입니다. 문제 요구사항을 정확히 파악하고 효율적인 알고리즘을 설계해보세요.www.codetree.ai문제역시나... 길어서 생략... 위 링크에서 확인 가능합니다.입력출력풀이시뮬레이션(구현) 문제 ➡️ 문제에서 주어진 조건을 잘 살펴서 구현해야 한다.필요한 기능을 함수로 나눠서 구현 진행초기화 : 초기 미로와 참가자에 대한 정보를 입력받는 함수 (void init())참가자 이동 : 문제에서 주어진 조건을 고려하여 참가자가 이동하는 함수 (void move(int id))맵 회전 : 문제에서 주어진 조건에 맞는 영역을 찾아 해당 영역을 ..
삼성 코딩테스트 기출 문제 설명: 왕실의 기사 대결 | 코드트리 삼성 코딩테스트 기출 문제 설명: 왕실의 기사 대결 | 코드트리삼성전자 코딩테스트 기출 문제 왕실의 기사 대결의 상세 설명입니다. 문제 요구사항을 정확히 파악하고 효율적인 알고리즘을 설계해보세요.www.codetree.ai문제문제는 생략... 위 링크에서 확인 가능합니다.입력출력풀이BFS(너비 우선 탐색) + 재귀 + 시뮬레이션(구현) 문제주어진 조건을 빠짐없이 구현하는 것이 핵심 ➡️ 문제에서 주어진 기능 별로 함수로 구현하자!init() : 배열 및 입력 정보 초기화checkMovable() : 선택된 기사가 움직일 수 있는지 체크move() : 조건에 따라 이동dmgCheck() : 이동이 완료된 후 데미지 체크코드세부 코드 설명필요한..
삼성 코딩테스트 기출 문제 설명: 포탑 부수기 | 코드트리 삼성 코딩테스트 기출 문제 설명: 포탑 부수기 | 코드트리삼성전자 코딩테스트 기출 문제 포탑 부수기의 상세 설명입니다. 문제 요구사항을 정확히 파악하고 효율적인 알고리즘을 설계해보세요.www.codetree.ai문제문제가 너무 길어서 생략... 위 링크에서 확인 가능합니다.입력출력풀이BFS(너비 우선 탐색)를 이용한 최단 거리 + 시뮬레이션(구현) 문제주어진 조건을 따져가며, 함수를 이용하여 단계적으로 구현하는 것이 실수를 줄이는 법초기화(void init()) : 어떻게 초기화를 할 것인가? 포탑의 정보는 어떻게 받아올 것인가? 고민공격자 선정(Tower findAttacker()) : 문제에서 주어진 조건에 따라 공격 포탑 선택타겟 선정 (T..
C언어에서 포인터와 배열은 밀접한 관계를 가지고 있습니다. 이 글은 1차원 배열과 2차원 배열을 중심으로, 포인터와 배열의 관게에 대해 정리한 글입니다.1차원 배열과 포인터1차원 배열의 메모리 구조C 언어에서 1차원 배열을 선언하면, 해당 배열을 구성하는 모든 원소가 메모리에 연속적으로 배치각 원소마다 정해진 크기(데이터 타입의 크기)만큼 연속해서 배치#include int main(void) { int arr[5] = {10, 20, 30, 40, 50}; printf("배열 arr의 시작 주소 : %p\n", (void*)arr); for (int i = 0; i C 언어 표준에 따르면, 배열의 원소들은 연속된 메모리 공간에 차례로 배치단일 타입으로 선언된 1차원 배열의 원소들 사이에는 추가적..
이 글은 다익스트라 알고리즘에서 최단 경로를 기록하는 방법에 대해 정리하였습니다.최단 경로를 기록하는 이유✅ 다익스트라 알고리즘은 기본적으로 시작 노드에서 각 노드까지의 최소 비용(거리)을 구하는 데 최적화된 알고리즘이다. 하지만 실제 문제에서는 최단 거리 뿐만 아니라 어떤 경로로 이동했는지도 필요한 경우가 존재한다.➡️ 지도 문제 : 도시 간 최단 거리와 구체적인 경로➡️ 네트워크 경로 제어 : 최소 비용 라우팅에 사용➡️ 최단 경로 관련 알고리즘 학습 : 문제 풀이 이해도 상승🌐 기본 다익스트라 알고리즘은 아래 글 참고https://devkuk.tistory.com/25 [알고리즘] 최단 경로 알고리즘 - 플러드 필(Flood Fill)과 다익스트라(Dijkstra)이 글은 BFS 알고리즘을 활용하..
C++ 표준 라이브러리인 std::priority_queue를 중심으로, 우선순위 큐가 정렬 안정성(stability)을 보장하지 않는 이유와 동작 방식을 정리한 글입니다.우선순위 큐와 정렬 안정성우선순위 큐 (priority queue)우선순위 큐는 가장 높은 우선 순위를 갖는 원소를 가장 먼저 꺼낼 수 있도록 하는 자료구조C++ 표준 라이브러리에서는 std::priority_queue 템플릿 클래스로 제공 ( 라이브러리 필요)내부적으로는 힙(heap)을 이용해 구현되어 있음우선순위 큐 기본 코드#include // 기본 예시std::priority_queue pq;pq.push(3);pq.push(10);pq.push(5);// top() = 10 (가장 큰 값)pq.pop(); // 1..