전체 글 73

코드업(codeup.co.kr) 1097 : 바둑알 십자 뒤집기 해설 (C언어)

C언어로 작성된 코드입니다. 문제설명 윤마는 검정색과 흰색 바둑알을 바둑판에 꽉 채워 깔아 놓으며 놀고 있다. 윤마는 십(+)자 뒤집기가 하고 싶어 졌다. 바둑판(19 * 19)에 흰 돌(1) 또는 검정 돌(0)이 모두 꽉 채워져 놓여있을 때, n개의 좌표를 입력받아 십(+)자 뒤집기한 결과를 출력하는 프로그램을 작성해라. 참고로, 가로 번호와 세로 번호를 사용할 수 있는 2차원 배열을 사용한다면 이러한 형태를 쉽게 기록하고 사용할 수 있다. 입력 처음에는 바둑알이 깔려 있는 상황이고, 19 * 19 크기의 정수값으로 입력된다. 두번 째는 십자 뒤집기 횟수(n)가 입력된다. 십자 뒤집기 좌표가 횟수(n) 만큼 입력된다. 단, n은 10이하의 자연수이다. 출력 십자 뒤집기 결과를 출력한다. 입력예시 더보기..

SQL 종류와 활용

DB 엔진의 종류와 점유 랭킹을 보고 싶으면 여기로 들아가시오 https://db-engines.com/en/ranking_trend historical trend of the popularity ranking of database management systems db-engines.com SQL 종류 SQL: Structured Query Language : 구조화된 질의 언어. CRUD DQL 데이터 질의 언어 SELECT: 데이터 검색 SELECT 를 DQL로 분류하기도 한다. DML 데이터 조작 언어 단위: Row (가로,행) DML은 COMMIT/ROLLBACK 이 가능하다. INSERT: 데이터 추가 UPDATE: 데이터 수정 DELETE: 데이터 삭제 DDL 데이터 정의 언어 단위: Col..

개발/DB 2022.02.20

UNIX 운영체제 System Call

System call. UNIX 계열 운영 체제에서는 system call 기능이 있다. userland 프로세스가 사용하여 커널 프로시저를 호출한다. 각각의 시스템 호출은 고유번호가 지정되어 있고 각각의 번호마다 짧은 매개변수가 있다. 운영 체제, 하드웨어 플랫폼 및 구성 옵션에 따라 다를 수 있다. 이 글을 kernel 카테고리에 넣을까 Assembly 카테고리에 넣을까 엄청 고민했다. 결국 환경을 리눅스 AMD64말고도 확장시켜 다양한 system call 을 구현하는 것으로 방향을 잡았다. linux kernel darwin freeBSD os별 system call 명령어 Name standard linux Darwin FreeBSD access POSIX access(2) access(2) a..

개발/Assembly 2022.02.20

수경재배 종류와 장단점- 스마트팜(Smart Farm)의 식량난 해결

수경재배(Hydroponics) 토양 대신에 물이나 배지에 생육에 필요한 무기양분을 녹인 배양액을 공급하면서 작물을 재배하는 방식 수경재배는 토양(흙) 없이 물을 이용하여 작물을 재배하는 방식과 이에 필요한 모든 기술. 수경재배를 하면 월-E가 식물을 가져올 필요가 없다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 고형재배 방식 인공배지를 사용하여 거기에 작물을 기르는 방식. 배지는 크게 무기물 배지/유기물 배지로 나뉜다. 무기물 배지 펄라이트(pearlite) 배지 진주암 원석을 고온에 구운 인공토양 장점 단점 밀도가 낮아 가볍고, 통기성,배수성이 좋음 한번 쓰고 소독하면 재사용 가능 환경오염이 없어 자유롭게 폐기 쉽게 파편이 생기고 가루가 날림 양이온 치환능력이 거의 없어 영양분을 100% 양액 공급 암면 배지 여러 ..

IT/농업과학 2022.02.12

Hello World! 어셈블리 분석 - AMD64 어셈블리 기초

Hello, World! 출력을 분석해보자 Hello.c #include //표준 라이브러리 int main(void){//main 함수 선언 printf("Hello world\n");//printf표준함수로 문자열 출력 return 0;//무결성 증명 } 간단한 Hello world 프로그램이지만 많은 원리가 있다. 어셈블리를 분석하려면 당연히 어셈블리어를 알아야 한다. 어셈블리 구조 어셈블리어 수행 방식 Opcode Operand INC RAX 어셈블리는 Opcode와 Operand 그리고 ;로 시작하는 주석이 있다. Opcode는 명령어 Operand는 명령이 수행될 공간 또는 데이터 ; 주석 Opcode Operand1(Destination) Operand2(Source) ADD RBX RAX ..

개발/Assembly 2022.02.09

유희왕 마스터 듀얼 입문 시 필수 가이드

유희왕 마스터 듀얼 유희왕 마스터 듀얼 입문 시 필수 가이드 최근 유희왕 마스터 듀얼이라는 스팀 게임이 인기가 있다. 엄청 유행을 했던 실물 카드 보드게임을 온라인으로 구현한 것이다. 실물 카드는 반드시 돈으로 구매해야 했지만 여기는 다르다. 무료카드가 있다! 무과금으로 할 수 있다 1. GEM 획득하기 듀토리얼을 통해 500점씩 x2 번 총 1,000 GEM을 획득할 수 있다. 스타터덱은 아무거나 고른다. 링크 덱 추천 솔로 모드로 들어가서 듀얼 스트래터지에서 2,400 GEM 미션 보상 솔로게이트 진행을 하면서 미션을 클리어할 수 있는데 여기서 또 추가 GEM을 획득할 수 있다. 솔로게이트 진행 미션 보상 500 GEM + 300 GEM + 200 GEM 레벨 보상 500 GEM + 400 GEM 무..

게임/Steam 게임 2022.02.08

SQL 데이터 타입 총정리 - SQL Data Type

SQL 에는 다양한 데이터 타입이 있는데 아마도 값의 범위를 이용한 해킹을 방지하거나 데이터를 잘못 다루는 실수로 인한 피해를 줄이기 위해서 그런 것 같다. 다 사용하지는 않고 대표적인 것 몇 개만 외우면 된다. 정확한 수 타입 (Exact Numeric Data Types) bigint -9,223,372,036,854,775,808 9,223,372,036,854,775,807 int -2,147,483,648 2,147,483,647 smallint -32,768 32,767 tinyint 0 255 bit 0 1 decimal -10^38 +1 10^38 -1 numeric -10^38 +1 10^38 -1 money -922,337,203,685,477.5808 +922,337,203,685,4..

개발/DB 2022.02.04

SQLite로 배우는 SQL 표준의 기초

SQL (Structured Query Language) 구조적 질의 언어, 데이터베이스(DataBase)에서 데이터의 효율적인 관리를 하기 위해 만든 언어이다. 각종 서버는 거의 대부분 SQL 기반 DB를 사용한다. 데이터를 직접 다루는 언어이다 보니 보안에 매우 신중하고, 가장 보수적인 문법 규칙을 고수한다. 신중한 입력을 요구받다 보니 자연어에 가까운 명령어를 채택하였다. 언어 특성상 탐욕적 알고리즘을 채택하여 명령어 입력에 매우 신중해야 한다. (특히 DROP) 해킹 공격을 막기 위해 발전을 거듭하여 Secure Coding 기법이 발달하게 되었다. SQL은 Oracle, MS, 등등 여러 기업에서 변조 문법을 추가한 버전(?)이 많아서 가장 먼저 SQL 표준인 ANSI 표준 문법을 배워야 한다...

개발/DB 2022.02.04

RISC vs CISC 차이 - Processor

RISC vs CISC 가 무엇일까? 기술의 발전으로 다양한 프로세서가 등장했다. 구분을 위해 연산 방식에 따라 분류할 때 주로 RISC 와 CISC 로 나눌 수 있다. 구조가 다르기 때문에 컴파일러도 다르다. RISC 에는 ARM 이 대표격이며, CISC 에서는 AMD64 가 대표적이다. 표 CISC vs RISC 요약: C(omplex)ISC 는 코드 단순/계산 복잡,단순처리 R(educed)ISC 는 코드 복잡/계산 단순,병렬처리 CISC (복잡 명령어셋 컴퓨터) RISC (단순 명령어셋 컴퓨터) 1 하드웨어에서 주로 처리(Memory-to-Memory) 소프트웨어에서 주로 처리 (Register-to-Register) 2 멀티 클럭 동작 싱글 클럭 동작만 3 코드 용량 작음 코드 용량 큼 4 주소..

개발/Assembly 2022.02.03

아치 리눅스 설치와 스피드런

가장 빠른 아치 리눅스 설치 (실사용 불가능) 이 글은 가상환경을 고려하여 작성되었으며 가장 빠른 속도로 설치하기를 지향합니다 이 글을 따라해도 컴퓨터에 무리가 가지는 않습니다 호환성 및 안정적인 설치를 위한 정상적인 설치법은 ArchWiki를 따라 주세요 BIOS (UEFI 미지원) fstab 없음 캐시를 최소화하기 위해 먼저 커스텀 iso 를 구워야 한다 1. iso 굽기 1. 최소한의 아치 설치를 수행하고 설치된 모든 패키지 목록을 파일로 보낸다. $ pacman -Qq > list.txt 2. 디스크를 마운트하고(가상머신) $ pacman -S --cachedir /path/to/archiso/airootfs/etc/pac-cache < list.txt 3. 모든 패키지가 다운로드된 후 설치 전일..