인기글
-
Levenshtein distance (Edit distance) 정의한 단어를 다른 하나로 바꾸기 위해 글자를 수정(edit)해야 하는 횟수를 계산하여 유사도를 판단하는 것을 edit distance라고 한다. edit operation을 어디까지 1개로 볼 것인가에 따라 여러가지 알고리즘이 있는데 Levenshtein에서는 글자의 삽입(insertion), 제거(deletion), 대체(substitution) 3가지를 1번의 edit으로 본다. 예를 들면, lev(”hello”, “shallow”) = 3이다.insertion 2번 (제일 앞에 s 추가, 마지막에 w 추가)과 substitution 1번 (e→a) 직관적으로 값을 구하는 것은 쉽지만, 어떻게 코드로 어떻게 구현해야할지 언뜻 생각해보면 꽤나 생각해볼 게 많은 문제임을 알 수 있다. 아래는 엄밀하게 ..
-
라즈베리파이 원격제어 with 노트북, 랜선 - 완벽한 소형 컴퓨터로 동작할 수 있는 라즈베리파이는 그 자체에 디스플레이와 키보드, 모니터를 입력하면 바로 사용가능하지만(SSH뿐만 아니라 GUI까지!!), 노트북에 연결하여 원격제어하는 방법이 휴대하기도 편하고 익숙한 윈도우와 동시에 사용할 수 있어 편하다. >1. 노트북과 라즈베리파이 IP주소 지정.2. puTTY로 원격접속 후 VNC 활성화.3. VNC Viewer로 GUI 사용. >1) puTTy : https://www.ssh.com/ssh/putty/download#sec-Download-PuTTY-installation-package-for-Windows2) VNC Viewer : https://www.realvnc.com/en/connect/download/viewer/ 1. .. -
[Verilog] Signed, unsigned Verilog에서 signed와 unsigned가 섞여서 연산되는 경우,출력 bit-width와 sign bit 처리에 각별히 유의해야 한다.-> 연산이 적용되는 signal에 type과 range를 주석으로 다는 습관을 들이자~~ 1. unsigned = unsigned + unsigned - output bit-width만 주의하면 됨. ex) 아래에서 case 1처럼 a와 b의 범위가 bit-width로 표현 가능한 범위보다 작게 constraint가 걸려있다면 output도 worst case에 맞게 output을 4bit만 해도 문제가 없지만, case 2처럼 4bit로 표현가능한 전체 범위를 사용한다면 case 1으로는 overflow가 발생한다. 따라서, 변수에 특정 범위가 지정되어 있지..
-
MOSFET - 기본 구조 및 동작, Threshold voltage 1. Basic NMOS의 구조와 동작 원리 - MOSFET (Metal-Oxide Semiconductor Field-Effect Transistor) : 굳이 풀어 쓰면 금속-산화 반도체 전계 효과 트랜지스터. ㄴ MOS? : 도핑된 반도체 기판 위에 SiO2로 된 절연층과 금속이 적층되어 있는 구조를 나타내는 말이다(MOSFET 개발 초기에는 게이트를 금속 소재로 사용했지만 최근에는 공정상 편의를 위해 폴리실리콘이 사용됨). 세로 방향으로 보면 금속-유전체-p형 반도체 순서로 적층되어 있음을 볼 수 있는데 이는 capacitor의 구조와 유사하다. ㄴ FET? : 이번에는 가로 방향으로 구조를 보자. n+, 즉 고농도로 도핑된 n-type인 source와 drain 사이에 p-type인 bo.. -
[Verilog] 코드 최적화 1. 중첩된 루프는 피한다 : 소프트웨어에서 루프의 처리는 그냥 행을 반복해서 연산하는 것이지만, 하드웨어 설계에서 루프는 피드백이 있는 하드웨어를 의미한다. 때문에 중첩된 루프 구조는 최적화에 바람직하지 않다,2. 중첩된 if문은 피한다 : if문은 하드웨어에서 로직으로 구현된다. 따라서 if문이 중첩될수록 로직의 아웃풋이 다른 로직의 인풋으로 들어가면서 로직 레벨이 증가한다. 로직 레벨이 증가할수록 딜레이가 커지기 때문에 타이밍 에러가 발생할 확률이 높다. 3. if문보다는 case문- if/else의 반복도 마찬가지로 로직 레벨을 증가시킨다. case문을 쓰면 입력이 여러개인 하나의 로직을 사용하기 때문에 로직 레벨이 낮아짐.4. 괄호 사용z- 똑같이 세번의 연산이 수행되지만 후자가 더 빠르다. 앞..
최신글
-
[DSA 101] 4. Sorting [DSA] 2. Searching algorithm[DSA] 1. Computation Complexity와 Big-OAlgorithm?(Generally) 어떤 문제를 해결하기 위한 일련의 계산 절차.(Computer science에서는) 컴퓨터 상에서 돌아가는 program의 mathematical abstraction. Efficiency of an Algorithm어떤jae-walker.tistory.com [DSA] 3. Iteration vs. Recursion[DSA] 2. Searching algorithm이전글 : 2025.04.13 - [Data Science] - [DSA] 1. Computation Complexity와 Big-O [DSA] 1. Computation Complex..
-
[DSA 101] 3. Iteration vs. Recursion [DSA] 2. Searching algorithm이전글 : 2025.04.13 - [Data Science] - [DSA] 1. Computation Complexity와 Big-O [DSA] 1. Computation Complexity와 Big-OAlgorithm?(Generally) 어떤 문제를 해결하기 위한 일련의 계산 절차.(Computer science에서는) 컴퓨터 상에서jae-walker.tistory.com 이전 글에서는 searching algorithm인 linear search와 binaray search에 대해 살펴보고, 각각의 time complexity가 어떻게 되는지 계산해 보았다. 또 다른 basic algorithm인 sorting으로 넘어가기 전, 잠깐 iteratio..
-
[DSA 101] 2. Searching algorithm [DSA] 1. Computation Complexity와 Big-OAlgorithm?(Generally) 어떤 문제를 해결하기 위한 일련의 계산 절차.(Computer science에서는) 컴퓨터 상에서 돌아가는 program의 mathematical abstraction. Efficiency of an Algorithm어떤 문제를 해결하기 위한 방법이jae-walker.tistory.com 앞선 글에서 알고리즘은 어떤 문제를 해결하기 위한 일련의 계산 절차이며, 알고리즘의 complexity를 평가하기 위한 Big-O notation에 대해서 살펴보았다. 그럼 이제 몇 가지 알고리즘에 요걸 적용해보자. Searching algorithm먼저, 가장 간단한 searching algorithm이다.Se..
-
[DSA 101] 1. Computation Complexity와 Big-O Algorithm?(Generally) 어떤 문제를 해결하기 위한 일련의 계산 절차.(Computer science에서는) 컴퓨터 상에서 돌아가는 program의 mathematical abstraction. Efficiency of an Algorithm어떤 문제를 해결하기 위한 방법이 딱 하나만 있는 것은 아니다. 그럼 우리는 어떤 알고리즘을 선택 or 개발해야 할까?문제를 해결하기 위해 필요한 cost, 즉 "비용"이 적을수록 "좋은" 알고리즘이다. 같은 일을 하는데 월급도 적게 받고, 듀얼 모니터 사달라는 소리도 안하는 직원을 회사가 좋아하는 것 처럼... (심지어 컴퓨터는 박봉으로 영혼까지 빨아먹는다고 불평도 퇴사도 안한다! 안심하고 착취가 가능하다!!!) 그래서 좋은 Algorithm을 평가하..
-
당신이 당신임이 기쁩니다. 내가 김고은이였으면 저기서 무릎꿇고 오열했다.내가 나로 존재함이 누군가의 기쁨이 된다니... https://youtu.be/MdIdMvTa57U?si=IraKH7AzkpEdQrayhttps://youtu.be/Z9i7rbGLu8w?si=Fx1kLIQOzivJXkkG