| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 28 | 29 |
| 30 | 31 |
- 백준
- Rtl
- boj
- testbench
- HW
- 알고리즘
- HDL
- verilogHDL
- verilog HDL
- HWEngineer
- hdlbits
- 감시
- 최적화
- 모델링
- 가속기시스템
- 스타트와링크
- verilog
- 14889
- dfs연습문제
- 비트마스킹
- bus
- 가속컴퓨팅
- 모듈
- DFS
- Module
- RTLEngineer
- 코딩테스트
- 비트마스크알고리즘
- 비트마스크
- 15683
- Today
- Total
목록전체 글 (25)
oohyoo 님의 블로그
HDL Bits 문제를 풀다보면 어? 이게 이런거였나? 싶었던 개념들이 나온다. 분명 배운 내용들인데 교과서를 두고 하나하나 배웠다기 보단.. 교수님 강의를 들으면서 실습으로 감으로 익힌 것들이 많기 때문인듯 싶다.AMBA BUS에 대해서 다뤄본 적도, 배워본 적도 있으나 BUS란 무엇인가요? 하고 면접에서 질문이 들어오면 대답할 수 있을까? 취업 준비 겸 막학기를 보내고 있는 예비 취준생으로서 이런거 정리해두면 좋을 것 같아서 글을 써본다. 1번 코드 (HDLBits - Mux2to1)module top_module( input a, b, sel, output out ); assign out = sel? b: a;endmodule 2번 코드 (HDLBits - Mux2to1..
안녕하세요.하드웨어 모듈/반도체 IP 개발자를 희망하시는 분들을 위한 좋은 verilog 연습 웹페이지가 있어 공유해드리고자 합니다. SoC, CPU, GPU, NPU등 하드웨어를 설계할 때 verilog HDL 언어가 가장 보편적으로 쓰입니다.이 verilog HDL에 대해 이론적 학습을 마치셨다면 바로 프로젝트를 진행하셔도 좋지만, 아무래도 C언어나 Python과는 다르게 연속 동작/병렬시행 매커니즘이 익숙하지 않아서 기본적인 실수를 하기 쉽습니다. 실제로 저도 정석적인 verilog 코딩을 익히지 않고 이론만으로 곧바로 프로젝트부터 시작했다가 미숙한 코드를 많이 작성하고 지적받았던 경험이 있어서, 초심으로 돌아가서 'verilog HDL 코딩의 정석'을 배워보고 싶었습니다. https://hdlbi..
[문제][풀이]#입력과 출력을 자유롭게 작성해주세요from collections import dequedef solution(H, W, h, w, house): queue = deque() dh = [-1, 0, 1, 0] dw = [0, 1, 0, -1] visited = [[False]*W for _ in range(H)] queue.append((h, w, 0)) while queue: x, y, dist = queue.popleft() for d in range(4): cx = x+dh[d] cy = y+dw[d] if(0
[문제][풀이] #입력과 출력을 자유롭게 작성해주세요from collections import dequedef solution(house, h, w): queue = deque([(h, w, 0)]) dh = [-1, 0, 1, 0] dw = [0, 1, 0, -1] visited = [[-1]*W for _ in range(H)] while queue: x, y, dist = queue.popleft() for d in range(4): cx = x+dh[d] cy = y+dw[d] if 0
[문제] [풀이] #입력과 출력을 자유롭게 작성해주세요from collections import dequedef solution(chizu, sh, sw): queue = deque([(sh, sw, 0)]) dh = [-1, 0, 1, 0] dw = [0, 1, 0, -1] while queue: x, y, dist = queue.popleft() if chizu[x][y] == 3: return dist for dir in range(4): cx = x+dh[dir] cy = y+dw[dir] if (0
[문제] [풀이]def solution(input_string): count_dict = {} prev = None for ch in input_string: if ch != prev: count_dict[ch] = count_dict.get(ch, 0) + 1 prev = ch print(count_dict) lonely_chars = sorted([ch for ch, count in count_dict.items() if count >= 2]) return "".join(lonely_chars) if lonely_chars else "N" .get() 메서드를 살펴보면, ch의 값이 없다면 0을 ..
파이썬의 정렬(Sorting)파이썬에서는 데이터를 정렬하는 데 강력하고 간단한 기능을 제공합니다.sort()와 sorted() 함수는 데이터를 기본적으로 오름차순으로 정렬하며, 사용자 정의 기준을 사용해 커스텀 정렬도 가능합니다.1. 파이썬의 기본 정렬파이썬의 기본 정렬은 Timsort 알고리즘을 사용하며, 시간 복잡도는 **O(N log N)**입니다.2. 정렬 방법(1) sort() 메소드리스트 객체의 원본을 직접 정렬합니다.반환값은 None이며, 원본 리스트가 변경됩니다.numbers = [5, 2, 9, 1, 7]numbers.sort()print(numbers) # [1, 2, 5, 7, 9](2) sorted() 함수원본 데이터를 변경하지 않고 정렬된 새로운 리스트를 반환합니다.리스트뿐 아니..
파이썬의 Set(집합)set은 파이썬에서 제공하는 집합 자료형으로, 중복을 허용하지 않고, 순서가 없는 데이터 구조입니다.수학의 집합 개념을 프로그래밍에서 활용할 수 있도록 제공되며, 교집합, 합집합, 차집합과 같은 집합 연산도 지원합니다.1. Set의 특징중복된 값이 허용되지 않음: python s = {1, 2, 2, 3} print(s) # {1, 2, 3}동일한 값을 여러 번 저장하려고 해도 한 번만 저장됩니다.순서가 없음:s = {1, 2, 3}# print(s[0]) # 오류 발생Set은 순서가 없으므로 인덱스로 접근할 수 없습니다.변경 가능(Mutable):s = {1, "apple", (2, 3)}Set 자체는 변경 가능하지만, 내부에 저장된 요소는 변경 불가능한 값이어야 합니다. (예:..
※본 포스팅은 프로그래머스 pccp 교육자료를 참고하였습니다. 힙(Heap)힙(Heap)은 완전 이진 트리(Complete Binary Tree) 기반의 자료구조로, 우선순위 큐(Priority Queue)를 구현하는 데 자주 사용됩니다.최댓값 또는 최솟값을 빠르게 찾을 수 있는 성질을 가지며, 힙 정렬에도 활용됩니다.1. 힙의 종류최소 힙(Min-Heap):부모 노드가 자식 노드보다 항상 작거나 같은 값.루트 노드에는 가장 작은 값이 저장됨.최대 힙(Max-Heap):부모 노드가 자식 노드보다 항상 크거나 같은 값.루트 노드에는 가장 큰 값이 저장됨.2. 힙의 특징완전 이진 트리:마지막 레벨을 제외하고 모든 레벨이 꽉 차 있으며, 마지막 레벨도 왼쪽부터 채워짐.힙 속성:최소 힙: 부모 노드 ≤ 자식 노..
[문제] [풀이]def count_regions(grid): n = 7 visited = [[False] * n for _ in range(n)] directions = [(-1, 0), (1, 0), (0, -1), (0, 1)] def dfs(x, y, color): visited[x][y] = True count=1 for dx, dy in directions: nx, ny = x + dx, y + dy if 0 =3: region_count+=1 return region_countgrid = [list(map(int, input(..