본문 바로가기

컴퓨터공학

(17)
부동소수점 표기 및 소수 이진수 표현하기 소수 이진수 표현에 대해서 생각해보자. (여기서 말하는 소수는, 0.625를 의미) Q. 만약에 십진수 소수 0.625가 있다면, 소수 이진수를 어떻게 구해줘야할까? 입시교육을 받은 사람이라면, 자연수를 이진수로 표기할 때는 2로 나누고, 소수의 이진수를 곱할 때는 2를 곱한다. 0.625가 2진수 101로 표현되는 것은 다들 알고 있다. 두 값이 같다는 것은 101을 십진수로 표기하면, 1/2 + 1/8 = 0.625로 간단하게 검산할 수 있다. 결과보다 과정에 중점을 두려고 한다. 왜 2를 곱하는 과정에서 나오는 값들이 이진수로 쓰이게 되는 것일까? 2를 한번 곱해서 1이 나오는 값은, 1/2가 존재한다. 2를 두번 곱해서 1이 나오는 값은, 1/4가 존재한다. 위의 원리로, 소수점을 2로 곱하는 과..
진수 나누기 입시 과정을 거치면서, 십진수를 특정 N진수로 변환하는 과정을 수없이도 해봤다. 하지만 그 과정이 왜 십진수를 N진수로 변환하는 것인가에 대해서 생각하지 않았다. 이 얘기가 무슨 얘기인지, 아래의 예시를 통해서 조금 더 생각해보자. 11을 이진수로 표기해보자. 우리는 2로 순차적으로 나눠가며, 생기는 몫과 나머지를 이용해서 십진수 11이 이진수 1011로 표기된다는 사실을 알고 있다. 검산 과정을 통해서, 두 값이 같다는 것도 증명할 수 있다. 하지만 결과를 통해서, 그 과정이 옳다는 것을 증명하고 싶지 않고 과정을 통해서 결과가 옳다는 것을 나타내고 싶다. 직관적인 이해를 하고 싶어서, 생각하는 과정을 글로 표현해보려고 한다. 11을 이진수로 표현하는 과정을 생각해보려 한다. 11을 2로 나누면 몫은 ..
[Computer Science(CS) 기술면접 준비] 네트워크 / 보안 네트워크 전반적인 개념 velog.io/@tlatldms/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EC%A0%84%EA%B3%B5%EC%A7%80%EC%8B%9D 네트워크 전공지식 김유성 교수님 교안 + 면접에 나올법한 지식존재 이유: 통신이 일어나는 과정이 단계별로 파악할 수 있기 때문흐름을 한눈에 알아보기 쉽고, 사람들이 이해하기 쉽고, 7단계 중 특정한 곳에 이상 velog.io OSI 7계층 # 1 Layer(물리적 계층) : 전기적 신호, 허브 # 2 Layer(데이터 링크 계층) : 프레임, 이더넷, L2 스위치 # 3 Layer(네트워크 계층) : 패킷, IP, ARP, ICMP, 라우터, L3 스위치 # 4 Layer(트랜스포트 계층) : 세그먼..
[JAVA] 알고리즘에서 자주 쓰이는 자료구조 정리(예제, 사용시기, 백준, 프로그래머스, 필수 자료구조) ## Stack - 순차적으로 데이터를 접근하면서, 이전 데이터와 신규 데이터가 같을 때 연산이 이루어지는 문제에서 사용 - 중복 허용한다. * 예제 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 import java.util.*; import java.lang.*; import java.io.*; class Main { public static void main (String[] args) throws java.lang.Exception { Stack stk = new Stack(); if(stk.empty()){ stk.push(1); stk.push(2); stk.push(3); } if(!stk.empty()){ i..
[Cisco Packet Tracer] D, D EX의 차이점을 알아보자, EIGRP command 명령어 정의 D와 D EX의 차이점은, 아래처럼 정리할 수 있다. D - 같은 AS내의 EIGRP Neighbor인 라우터의 network command를 통해서 얻어진 라우팅 D EX - 같은 AS내의 EIGRP Neighbor인 라우터에서 redistribute (RIP | OSPF | connected)을 통해서 얻어진 라우팅 위 설명에 대한 이해를 돕기 위해서, 아래 구성도를 살펴보자. R1, R2, R3는 같은 AS 100으로 잡혀있다. 따라서 R1, R2, R3는 Neighbor 관계이다. R4는 Neighbor 관계가 아니다. 따라서, 3.3.3.0은 R3의 Connected로 라우팅이 잡혀있을 것이다. 만약에 R3에서, redistribute 3.3.3.0 / 24를 하지 않았다면, R1에서는 D EX..
[CISCO PACKET TRACER] L2 - L3 네트워크 구성하기, Trunk, Vlan CISCO PACKET TRACER 프로그램을 이용한 L2 - L3 네트워크 구성하는 방법에 대해서 자세히 기술. 위의 방식은, 일반적인 회사에서 사내망을 구성하기 위해서 사용하는 방식이다. 2개의 PC에서 해줘야 할것은, Default-gateway설정과 인터페이스 IP 설정만 해주면 된다. 나의 목적은 네트워크 주소가 다른 두 PC 사이에, 핑이 가능하게끔 하도록 하는 것이다. 따라서, DNS 서버는 넣지 않았다. 그 다음은 스위치 설정인데, 스위치에 Vlan 2개를 넣을 것이다. 아래는 위에 위치하는 스위치에 대한 설정이다. switchport trunk allowed add vlan 30, 40을 이용하면, 아래와 같이 설정된 것을 확인할 수 있다. 위 아래, 스위치 설정은 동일하므로 L3 스위치..
[C++] 우선순위큐 구조체 사용하는 법, 알고리즘, 이론 알고리즘 문제를 풀다보면, 우선순위큐를 사용할 일이 많다. 우선순위큐의 장점은 원하는 구조체를 선언하고 원하는대로 정렬 방식을 정할 수 있다는 것이다. typedef struct item { string pre; int number; int idx; item(string p, int n, int i) : pre(p), number(n), idx(i) {}; }item; struct cmp { bool operator()(item i1, item i2) { if (i1.pre.compare(i2.pre) == 0) { if (i1.number == i2.number) return i1.idx > i2.idx; else return i1.number > i2.number; } else return i1.pr..
Trie(트라이) 자료구조 정의, 예제 코드 2020 신입 개발자 카카오 블라인드 시험을 치다가, 문자열 처리에 대한 자료구조를 알게 되었다. Trie 자료구조에 대한 다음과 같은 모습으로 생겼다. 위에 보면, APPLE, LABLE, CABLE이라는 단어를 넣은 것이다. 왜 굳이, Trie 자료구조를 사용해야 하는지를 생각해보자. 특정 문자열을 벡터에서 순차적으로 탐색하면, 최대 문자열의 갯수만큼 걸리게 된다. 하지만 Trie 자료구조를 사용하면, 문자열의 길이만큼의 탐색 시간이 걸린다. 즉, 많은 문자열속에서 특정한 문자열을 찾기 위해서는 Trie만한 자료구조가 없다. Trie 자료 구조를 사용하지 않으면, 카카오 블라인드 2020 기출문제 효율성을 통과할 수 없게끔 설계되어 있다. Trie 자료 구조를 몰랐을 때 사용했던 방법은, 문자열을 일..