본문 바로가기

반응형

전체 글

HDLBits : Intro 안녕하세요! 은하수히치하이커입니다. 최근 디지털 설계 감각을 더 단단하게 만들기 위해 HDL 트레이닝 플랫폼인 HDLBits를 시작했습니다.현재까지 40문제를 해결했고, 전 세계 랭킹 330,09위에 올라와 있습니다.총 문제 수는 182문제. 앞으로 매일 3문제씩 꾸준히 풀어 나갈 계획입니다. 문제들을 풀 때마다 여기에 포스팅하는 건 너무 비효율적이라, 우선 182문제 완주 후, 인증과 함께 한 카테고리씩 문제를 포스팅할 계획입니다. 그럼 HDLBits가 무엇인지, 제 풀이는 어디에 있는지 확인하러 가보실까요? 1. HDLBits란 무엇인가?HDLBits는 Verilog HDL을 기반으로 디지털 회로 설계 실력을 훈련할 수 있는 온라인 문제 풀이 플랫폼입니다.특징은 다음과 같습니다:브라우저에서 바로 Ve.. 더보기
Tcl Exercism 7: Collatz Conjecture (proc, else/if, expr, incr, while) 1. Problem: Collatz ConjectureCollatz conjecture 는 다음과 같은 매우 단순한 규칙을 가진 문제이다.임의의 양의 정수 n 에 대해:n이 짝수이면 → n/2n이 홀수이면 → 3n+1이 과정을 반복하면,모든 양의 정수는 결국 1에 도달한다는 것이 Collatz conjecture의 주장이다. 예를 들어 16의 경우:16 → 8 → 4 → 2 → 1하지만 이 명제는 지금까지도 증명되지 않은 미해결 문제이다.단순한 규칙이지만, 수학적으로는 매우 깊은 문제로 남아 있다. 2. Solution Codeproc steps {integer} {# throw {NOT_IMPLEMENTED} "Implement this procedure." if {$integer [구현.. 더보기
Tcl Exercism 6: All Your Base (Horner's method, lappend, lreverse, foreach, $) 안녕하세요:) 은하수히치하이커입니다.이번 문제는 제 최애 문제여서 더 깊게 공부한 것 같습니다. 단순히 문법을 공부하는 것 이상, 진법 변환에서 연산 속도가 높은 알고리즘을 공부한 것이니, 많은 관심 부탁드립니다:) ======================================================================================= 1. 문제: 임의의 N진수를 M진수로 변환하기 주어진 입력 진법(inputBase)의 숫자 리스트를 목표 진법(outputBase)의 숫자 리스트로 변환하는 프로그램을 작성하는 문제입니다.핵심 전략: 한 번에 변환하기보다 [N진수 → 10진수 → M진수]의 2단계 과정을 거치는 것이 가장 논리적이고 안전합니다.제약 조건: 진법은 2 이상.. 더보기
Tcl Exercism 5: Two Fer (인자의 기본값 설정, Tcl의 인자 개수 체크, 변수 치환) 1. 문제: 상황에 맞는 대사 생성하기 (Two-fer) 상대방의 이름을 알면 이름을 넣어서, 모르면 "you"를 넣어서 정해진 문장을 출력하는 프로그램을 작성하는 문제입니다.규칙:이름이 "Do-yun"인 경우: "One for Do-yun, one for me."이름을 모르는 경우: "One for you, one for me."핵심 포인트: 인자가 들어올 수도 있고, 들어오지 않을 수도 있는 상황을 에러 없이 처리해야 합니다.2. 솔루션 코드 ############################################################# proc: two-fer# 이름을 인자로 받으며, 입력이 없을 경우 기본값으로 "you"를 사용합니다.###########################.. 더보기
Tcl Exercism 4: Resistor Color (Namespace&Scope, lsearch, Args, Early Exit, Everything is a string) 1. 문제: Resistor Color Mapping전자 부품인 저항기는 크기가 너무 작아 저항값을 숫자로 적기 어렵습니다. 대신 색깔 띠를 둘러 값을 표시하는데, 이번 과제는 특정 색상이 어떤 숫자를 의미하는지 찾아내고 전체 색상 리스트를 출력하는 프로그램을 만드는 것입니다.매핑 규칙: black(0), brown(1), red(2), orange(3), yellow(4), green(5), blue(6), violet(7), grey(8), white(9)목표:색상 이름을 입력받아 해당 숫자(인덱스) 반환.유효하지 않은 색상 입력 시 에러 처리.전체 색상 리스트 반환.2. 솔루션 코드# 네임스페이스를 활용하여 관련 함수와 변수를 모듈화합니다.namespace eval resistorColor { .. 더보기

반응형