반응형

전체 글 216

[ 컴퓨터구조 ] CPU의 작동원리

1. ALU와 제어장치 이번에는 CPU 내부에 있는 ALU와 제어장치에 대해 알아 볼 것이다. 1.1 ALU ALU는 레지스터를 통해 피연산자를 받아드리고, 제어장치로부터 수행할 연산을 제어 신호를 받아드린다. 이렇게 받은 정보들로 연산을 수행하고 결과를 레지스터에 저장한다. 매번 메모리에 저장하면 속도를 저하 시킬 수 있으므로 CPU안에 있는 레지스터에 우선 저장한다. 또, ALU는 음수와 양수를 구별하기 위한 플래그도 내보낸다. 플래그는 연산 결과에 대한 추가적인 정보를 가지고 있다. 부호 플로그 음수일때는 1 , 양수일때는 0이된다. 제로 플로그 연산결과가 0이면 1 , 0이 아니면 1이 된다. 캐리 플래그 올림수나 빌림수가 발생했을 때 1 , 발생하지 않았을 때 0이 된다. 오버플로우 플래그 오버..

[ C++ ] #7576 토마토

골드단계의 문제를 스스로 풀어보는건 처음이라! 꼭 스스로 풀겠다는 다짐을 하며 문제를 보았다. 음..1부터 시작해서 그냥 0인거 BFS하면 되겠다 싶었는데 요일를 세야하니까 한 타임에 몇개가 큐에 들어왔는지 세서 그 큐가 다 소진될때마다 하루씩 늘려야겠다고 생각했다. 풀 수 있을거같은데 시간초과가 날거같은...느낌? 일단 GO 다른 방법이 생각났다. 며칠째에 내가 익었는지 내 칸에 적어놓는다면 내 다음칸은 내 칸을 보고 +1을 하면 된다!! 다이나믹한 방법이다. 야호~! 맞았따~!~! 혼자힘으로 했다는게 너무 뿌듯하다~!~! #include #include #include using namespace std; int dx[4] = {0,1,0,-1}; int dy[4] = { 1,0,-1,0 }; que..

BOJ/[ BOJ ] C++ 2023.01.23

[ Pandas ] 외부 파일 읽어오기(CSV, EXCEL, JSON)

판다스는 다양한 형태의 외부파일을 읽어와서 데이터 프레임으로 변환할 수 있다. file format Reader Writer CSV read_csv to_csv JSON read_json to_json HTML read_html to_html Local clipboard read_clipboard to_clipboard MS Excel read_excel to_excel HDF5 Format read_hdf to_hdf SQL read_sql to_sql 1. CSV파일 데이터 값을 쉼표로 구분한다는 의미로 comma-separated values 를 줄여 CSV라고 부른다. 쉼표로 열을 구분하고 줄바꿈으로 행을 구분한다. pandas.read_csv("파일경로") 인자로 여러 옵션들을 전달 할 수도 있..

[ spring ] 스프링 빈과 의존관계, 예제 - 회원관리 : 의존관계 설정

스프링 빈을 동록하고, 의존관계 설정하기 리포지토리랑 서비스를 다 만들고 화면을 붙이고 싶다면 컨트롤러와 뷰 템플릿이 필요하다. 멤버 컨트롤러를 만들게 되면 이 컨트롤러는 멤버서비스를 통해서 회원가입하고 데이터를 조회할 수 있어야한다. 이 경우에 멤버 컨트롤러가 멤버 서비스를 의존한다고 표현한다. 스프링이 뜰 때 컨트롤러의 객체를 생성해서 스프링이 가지고있다. 이를 스프링 빈을 관리한다고 표현한다. 스프링은 스프링 컨테이너에 스프링 빈을 등록할 때, 유일하나 하나만 등록해서 공유한다.(싱글톤) 같은 스프링빈이면 모두 같은 인스턴스이다. 1 컨포넌트 스캔방식 스프링이 서비스, 리포지토리, 컨트롤러 들을 관리 할 수 있으려면 각각 @Service, @Repository, @Controller 를 명시 해줘야..

[ 운영체제 ] 프로세스와 스레드

1. 프로세스 프로세스란 실행 중인 프로그램이다. 프로그램은 실행되기 전까지는 데이터덩어리지만 프로그램을 메모리에 적재하고 실행하는 순간 프로세스가 된다. 1.1 프로세스 직접 확인하기 프로세스를 직접 확인해보면 내가 실행중인 프로세스 외에도 알 수 없는 프로세스가 실행되고있다. 사용자가 보는 앞에서 실행되는 프로세스는 포그라운드 프로세스라고하고, 뒤편에서 실행되는 프로세스는 백그라운드 프로세스라고 부른다. 이 중에서도 사용자와 상호작용하지 않고 정해진 일만 수행하는 백그라운드 프로세스를 유닉스 체계의 운영체계에서는 데몬, 윈도우 운영체제에서는 서비스라고 부른다. 1.2 프로세스 제어 블록 프로세스가 실행되려면 CPU가 필요하지만, CPU자원은 한정되어있다. 이때문에 프로세스들은 차례대로 돌아가면서 CP..

공부/운영체제 2023.01.17

[ 컴퓨터구조 ] 명령어

1. 소스 코드와 명령어 우리가 작성하는 소스코드는 컴퓨터 내부에서 명령어로 변환되어 컴퓨터를 작동시킨다. 1.1 고급언어와 저급언어 C, C++, JAVA와 같은 프로그래밍 언어들은 모두 사람들이 이해하기 쉽게 만든 고급언어이다. 반대로 컴퓨터가 직접 이해하고 실행할 수 있는 언어를 저급언어라고 한다. 저급언어는 명령어로 이루어져 있다. 저급언어는 0과1로 이루어진 기계어와 0과1을 전역한 어셈블리어가 있다. 짜피 컴퓨터가 고급언어에서 저급언어로 바꿔주는데 왜 저급언어를 알아냐하냐!!라고 할 수 있지만 하드웨어랑 밀접한 임베디드 개발자, 게임개발자, 정보보안 전문가 등의 개발자들은 어셈블리어를 많이 사용한다. 어셈블리어를 잘 관잘하면 프로그램이 어떤 절차로 작동하는지 이해할 수 있기 때문에 개발자라면 ..

[ C++ ] #2178 미로탐색

미로찾기는 BFS에서 많이 나오는 문제이다. 미로찾기 까지는 성공했지만,,, 이 문제의 핵심인 최단경로구하는거에서 막혔다.. 가다가 이길이 아닐때 어떻게 거리를 구하지...??? 맞는일인지 아닌지 어떻게 알고 거리를 update하지?? 이 것에 대한 해결방안으로 방문했는지 체크하는 배열에 이 자리까지 오는데 걸린 거리를 저장하는걸로 하였다. 다이나믹 프로그래밍..을 이용했다고 볼 수 있을 것 같다. #include #include #include #include using namespace std; int check[100][100]; int n, m; int dx[4] = { 0,1,0,-1 }; int dy[4] = { 1,0,-1,0 }; string a[100]; int main() { ios::..

BOJ/[ BOJ ] C++ 2023.01.15

[ C++ ] #1926 그림

어떤식으로 해야할지 알 것 같으면서도...코드로 짜려고하니까 잘 생각이 안난다. BFS로 1이 있는한 계속 탐색을 하고 0 으로 둘러쌓이면 탐색을 멈추면된다. 그렇게 그림을 하나 찾아내면 그 다음은 어디에서부터 탐색해야할까? 내가 놓치고 있던게 있었다. 다 0으로 둘러쌓여있으면 Queue는 비기 때문에 BFS는 끝난다. 그럼 그 이후 탐색을 하면서 방문하지 않았고 1인 지점을 찾은 뒤 거기서 부터 다시 BFS를 진행하면된다..! BFS 문제를 처음 풀어봐서 조금의 도움을 받았다는게 너무 아쉽고 찝찝하다... 다음에는 무슨일이 있어도 꼭 내 힘으로만 풀어야지!!!!!!!! #include #include #include using namespace std; int check[500][500]; int ma..

BOJ/[ BOJ ] C++ 2023.01.14

[ spring ] 예제 - 회원 관리 : 도메인, 리포지토리, 서비스, 테스트케이스

1. 비지니스 요구사항 정리 데이터: 회원ID, 이름 기능: 회원 등록, 조회 아직 데이터 저장소(DB)가 선정되지 않음(가상의 시나리오) 컨트롤러: 웹 MVC의 컨트롤러 역할 서비스: 서비스의 핵심 비지니스 로직이 들어있음 (ex.로그인 횟수제한) 리포지토리: 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 도메인: 비지니스 도메인 객체 (ex. 회원, 주문, 쿠폰 등등 주로 데이터베이스에 저장하고 관리됨) 데이터 저장소가 선정되지 않아서, 우선 인터페이스로 구현 클래스를 변경할 수 있도록 설계 (데이터 저장소는 RDB, NoSQL 등 고민중인 상황으로 가정) 초기 개발 단계에서는 구현체로 가벼운 메모리 기반의 데이터 저장소 사용 2. 회원 도메인과 리포지토리 만들기 //멤버클래스 packag..

[ C++ ] 3986 좋은 단어

국어를 잘못하는지 집중력이 낮은지.. 문제 이해하는데에 좀 걸렸다. 결론적으로는 괄호문제와 비슷하다고 생각했다. A괄호와 B괄호가 있다고 생각하고 풀면 어렵지 않을 것 같다. 한 줄 읽고 한글자씩 보면서 읽은 글자가 스택의 맨 위와 같으면 pop해주고 그렇지 않다면 스택에 push 해준다. 스택이 비어있다면 무조건 push해준다. #include #include #include using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); int N,cnt=0; cin >> N; for(int i=0;i

BOJ/[ BOJ ] C++ 2023.01.12
반응형