728x90
반응형

2024/02 50

[MySQL] 프로그래머스 59044. 오랜 기간 보호한 동물(1)

https://school.programmers.co.kr/learn/courses/30/lessons/59044 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 코드 SELECT ANIMAL_INS.NAME, ANIMAL_INS.DATETIME FROM ANIMAL_INS LEFT JOIN ANIMAL_OUTS USING(ANIMAL_ID) WHERE ANIMAL_OUTS.DATETIME IS NULL ORDER BY ANIMAL_INS.DATETIME LIMIT 3; 입양을 못 간 동물들은 ANIMAL_OUTS에서 입양일을 나타내는 DATETIME..

[Computer Architecture] Datapath

Datapath 컴퓨터 아키텍처에서 처리 장치 내부에서 데이터가 이동하는 경로 프로세서 내부의 구성요소들 사이에서 데이터가 이동하는 방식과 처리되는 방식을 포함 레지스터, 산술 논리 장치(ALU), 제어 장치 등으로 구성 Sequential Elements 데이터를 보관하는 용도로 사용 Register 저장될 값을 업데이트하는 시점을 결정하기 위해 clock signal을 이용 Edge-triggered: Clk(clock 신호)이 0에서 1로 바뀌는 순간 내부의 값이 update 입력값이 바뀔 때가 아니라, Clock 신호가 0에서 1로 바뀌는 시점의 입력값이 output에 반영됩니다. 즉, Clock edge에서 입력값이 무엇인가에 따라서 sequential element 값이 변경되고, 그에 따라 ..

[Computer Architecture] Clocking Methodology

Clocking Methodology Clock 신호의 정확한 타이밍에 의존하여 데이터를 변환하는 과정 Clock signal의 변화는 'Rising Edge'와 'Falling Edge'라고 불리우는 두 지점을 통해 이루어집니다. Rising Edge: 신호가 낮은 수준에서 높은 수준으로 변할 때 Falling Edge: 신호가 높은 수준에서 낮은 수준으로 변할 때 Rising Edge와 Falling Edge에서만 값을 읽고 쓰는 동작이 발생할 수 있습니다. Combinational logic은 clock cycles 동안에 데이터를 변환합니다. 즉, 어떤 Input이 주어지면 그것을 기반으로 여러 logic gate가 동작되어 output 값이 결정되는데 이것이 clock cycles 동안 이루어지..

[Computer Architecture] Division for computers

Division 알고리즘 partial remainder > divisor -> quotient bit = 1, remanider = remainder - divisor partial remainder quotient bit = 0 다음 비트로 이동 Divisor는 처음에는 맨 왼쪽 값을 쓰다가 점점 오른쪽으로 이동하면서 빼야하기 때문에 128bit 뺀 결과가 양수면 Quotient에 1을 넣고, 음수면 1을 넣는다. 왼쪽으로 shift하는데, 음수가 나왔을 때는 다시 원상 복귀한다. N-bit Quotient와 Remainder를 처리하기 위해서는 N+1번 반복해야 한다. (multiplication은 N번 반복이었음) Iter 0 3비트 연산이기에 Remainder, Divio..

[Computer Architecture] Multiplication for computers

Integer Multiplication m bits x n bits -> 계산결과는 (m+n) bit Binary rules 0이면 0을 쓴다. (0 x multiplicand) 1이면 multiplicand를 그대로 쓴다. (1 x multiplicand) 1 clock per step -> ~ 200 clocks per multiply add보다 multiply는 frequency가 낮다. multiply는 Amdahl's law에 따르면 uncommon case이다. Multiplication - 1 Multiplier를 오른쪽으로 shift해가면서 하드웨어는 Multiplier의 가장 오른쪽 bit를 하나씩 검사하고 그 값에 따라 제어합니다. ex) Multiplier 1001 -> 가장 맨 오..

[Computer Architecture] RISC-V overflow

Overflow 한정된 컴퓨터 자원으로 표현하기에는 너무 큰(너무 작은) 결과값이 나왔을 때 발생 양수와 음수를 더하는 과정에서는 오버플로우가 발생하지 않습니다. 같은 부호를 가지는 수끼리의 뺄셈에서는 오버플로우가 발생하지 않습니다.(양수 빼기 양수, 음수 빼기 음수) * 양수든 음수든 해당 자원의 크기만큼만 표현할 수 있기에 예를 들어, 양수 빼기 양수해서 엄청나게 작은 음수가 나와서 오버플로우가 발생하는 상황은 나오지 않음. 범위 안의 양수 - 양수 이기 때문입니다. A - B일 때, A가 0이면 오버플로우가 발생할 수 있습니다. A - B = -B인데 만약 signed 4bit 연산이었다고하면 -8~7까지 표현가능하기 때문에 A = 0, B = -8 이었다고하면 A - B = 8이 되므로 signe..

[Computer Architecture] Arithmetic Logic Unit(ALU, 산술 논리 장치)

ALU 구조 inputs 32-bit input A 32-bit input B 2-bit operation selector S : ALU가 할 수 있는 동작 중 무슨 동작을 할지 선택 총 4개의 동작으로 이루어져있기에 2bit로 표현 가능 Outputs 32-bit result R 동작 (S값에 따라서) S가 0b00일 때, R = A + B (addition) S가 0b01일 때, R = A & B (bitwise AND) S가 0b10일 때, R = A | B (bitwise OR) S가 0b11일 때, R = A ^ B (bitwise XOR) ALU Design Splitting Bits 각 bit를 split해서 별도의 ALU Gate에 넣고 나중에 다시 recombine하는 방식으로 디자인함으..

1주차 test

Q1 ssh, binary file, 디렉토리 구조, 정렬 1. ssh 접속 $ ssh test1@ssh.knock-on.org ... Are you sure you want to continue connecting (yes/no/[fingerprint])? yes ... test1@5f882d6040af:~$ 2. 힌트 확인 test1@a7c4fa4b85a6:~$ ls HINT test1@a7c4fa4b85a6:~$ cat HINT Some binaries appear to print flags.. 3. /bin와 같은 binary가 담기는 디렉토리에 flag가 있음을 예상 하지만 /bin 뿐만 아니라, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/..

Problem Solving 2024.02.27

[삼성전자 DX 알고리즘] 삼국지게임

// main.cc #ifndef _CRT_SECURE_NO_WARNINGS #define _CRT_SECURE_NO_WARNINGS #endif #include #define CMD_INIT 100 #define CMD_DESTROY 200 #define CMD_ALLY 300 #define CMD_ATTACK 400 #define CMD_RECRUIT 500 ///////////////////////////////////////////////////////////////////////// extern void init(int N, int mSoldier[25][25], char mGeneral[25][25][11]); extern void destroy(); extern int ally(char mM..

심볼릭 링크(Symbolic Link)

심볼릭 링크(Symbolic Link) 파일 시스템에서 다른 파일이나 디렉토리를 가리키는 특별한 종류의 파일 기본적으로 원본 파일이나 디렉토리의 경로를 포함하고 있으며, 이를 통해 심볼릭 링크를 통해 해당 파일이나 디렉토리에 액세스 가능 원본 파일의 내용을 변경할 수 있습니다. 심볼릭 링크는 하드 링크와는 달리 파일 시스템의 다른 위치에 있는 파일을 가리키기 때문에 원본 파일과 독립적으로 존재하며, 파일 시스템이 다른 위치로 이동해도 링크는 유효하게 유지됩니다. 하드 링크: 하드 링크는 원본 파일과 동일한 파일의 다른 이름입니다. 즉, 원본 파일과 하드 링크는 같은 데이터를 공유하며, 어느 한 쪽이 변경되면 다른 쪽도 변경됩니다. 이는 마치 같은 책을 두 개의 다른 표지로 갖고 있는 것과 비슷합니다. 만..

Linux 2024.02.25
728x90
반응형