분류 전체보기 86

[BOJ, Python] 10996번 : 별 찍기 - 21

https://www.acmicpc.net/problem/10996 10996번: 별 찍기 - 21 예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요. www.acmicpc.net 문제 예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요. 입력 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다. 출력 첫째 줄부터 차례대로 별을 출력한다. 예제 입력 1 1 예제 출력 1 * 예제 입력 2 2 예제 출력 2 * * * * 예제 입력 3 3 예제 출력 3 * * * * * * * * * 예제 입력 4 4 예제 출력 4 * * * * * * * * * * * * * * * * 풀이 규칙만 찾으면 금방 푸는 문제라서 문제풀이 필기로 대체합니다. 코드는 다음과 같습니다. N = int(input()) for i in ..

CS/BOJ 2022.04.20

[BOJ, Python] 10610번 : 30

https://www.acmicpc.net/problem/10610 10610번: 30 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한 www.acmicpc.net 문제 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한다. 미르코를 도와 그가 만들고 싶어하는 수를 계산하는 프로그램을 작성하라. 입력 N을 입력받는다. N는 최대 105개의 숫자로 구성되어 있으며, 0으로 시작하지 않는다. 출력 미르코가 만들고 싶어하는 ..

CS/BOJ 2022.04.20

[BOJ, Python] 2941번 : 크로아티아 알파벳

https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net 문자열을 활용한 구현 문제입니다. 문제 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= 예를 들어, ljes=njak은 크로아티아 알파벳 6개(lj, e, š, nj, a, k)로 이루어..

CS/BOJ 2022.04.20

[BOJ, Python] 1316번 : 그룹 단어 체커

https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net 문자열을 활용한 구현 문제입니다. 문제 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때문에 그룹 단어이지만, aabbbccb는 b가 떨어져서 나타나기 때문에 그룹 단어가 아니다. 단어 N개를 입..

CS/BOJ 2022.04.20

[Python] Sequence 자료형(튜플, 딕셔너리, 집합), zip() 함수

파이썬에는 sequence 자료형이라는 자료형이 있습니다. 하나의 변수에 여러 데이터를 저장할 때 사용하고 리스트(list), 튜플(tuple), 딕셔너리(dcitionary), 집합(set)이 있습니다. 본 게시글은 개인 공부를 기록하는 게시글이며 문법상 오류가 있을 수 있습니다. 튜플 튜플은 리스트와 비슷하게 쓰이지만 다른 점이 몇 가지 있습니다. 1. 튜플은 소괄호 ()안에 data를 넣어서 선언하며, 한 개의 data만 넣을 때는 (1, ) 처럼 data 뒤에 콤마(,)를 써줘야합니다. 2. 튜플은 리스트와 달리 한번 정해진 요소와 요소의 순서를 바꿀 수 없습니다. 튜플 내부의 객체를 변경하거나 삭제할 수 없으며 이를 교환불가능(immutable) 속성이라고 합니다. 그래서 프로그램이 실행되면서 ..

CS/Python 2022.04.19

[전자공학종합설계] 3. 16bit MIPS single-cycle CPU design

오랜만에 게시글을 작성하네요. RTL 소스코드는 깃허브에 올려두었습니다. 블로그에 올리기에는 코드가 길어서 링크로 남깁니다. https://github.com/Kim-Jiwan/16bit_MIPS_CPU GitHub - Kim-Jiwan/16bit_MIPS_CPU Contribute to Kim-Jiwan/16bit_MIPS_CPU development by creating an account on GitHub. github.com 3월 22일 화요일 전자공학종합설계(이하 전프) 미팅 때 2주 동안 16bit MIPS를 RTL로 짜오라는 미션을 받았습니다. 사실 이 과제는 3학년 1학기 논리회로설계 과목의 final assignment입니다. 앞으로 1년 동안 프로세서 설계를 해나갈 건데 가장 기본인 1..

[Git] 내가 보려고 만든 GitHub - VSCode 연동하기

git과 vscode 설치 과정은 따로 설명하지 않았습니다. 1. GitHub에 새로운 repository 생성하기 초록색 버튼 'New'를 누르면 새로운 repository를 만들 수 있습니다. 저는 이번에 과제로 진행할 16bit MIPS CPU라는 repository를 만들었습니다. 2. VSCode 열기 VSCode를 켜고, github에 올리고자 하는 파일이 들어있는 폴더를 열어줍니다. 저는 16bit_MIPS_CPU라는 폴더를 열었습니다. 제가 만든 16bit_MIPS_CPU라는 폴더는 비어있는 상태입니다. 파일 추가 버튼을 눌러서, cpu.v verilog 파일을 만들어 보겠습니다. 다음과 같이 작성 후, 저장했습니다. 3. Initial Repository 좌측에 있는 브랜치 모양의 아이콘..

CS 2022.03.25

[전자공학종합설계] 2. RISC-V pipelined CPU implemented in verilog HDL

전자공학종합설계의 3번째 포스팅입니다. 아직 미완이라 일단 소스코드만 올려놓음.. 내일 글로 정리하겠습니다. `define INST_SIZE 32 `define ADDR_SIZE 64 module CPU ( input clk ,rst ); // IF stage wire [`INST_SIZE-1:0] Instruction; // output of IF/ID wire [`ADDR_SIZE-1:0] IF_stage_PC; wire [`ADDR_SIZE-1:0] IF_stage_PC_p_4; wire [`ADDR_SIZE-1:0] IF_stage_PC_p_offset; // ID stage wire [2:0] ID_stage_EX_control_sig; wire [2:0] ID_stage_MEM_control_..

[전자공학종합설계] 1. GPU overview & ARM Mali-400 MP

전자공학종합설계의 첫 번째 게시물입니다. 어제부터 주간미팅 자료를 준비하고 있는데, 자료를 보기만 하니까 내용이 금방 휘발되고 머릿속이 중구난방이라 글로 남기려고 합니다. 그리고 이 글을 바탕으로 주간 미팅 발표자료를 만들어볼 생각입니다. What is GPU? GPU는 Graphic Processing Unit의 약자입니다. 본래 GPU는 비디오게임의 real-time rendering을 위해 개발되었습니다. 게임에 등장하는 방대한 데이터의 그래픽을 효과적으로 연산하기 위해서죠. 하지만 GPGPU(General Purpose GPU)가 등장하면서 GPU는 non-graphic 분야에서 활용 범위가 넓어졌습니다. GPU는 여러 개의 core가 함께 연산을 수행하므로, 여러 코어로 나누어 처리할 수 있는 ..

[전자공학종합설계] 0. GPU & Computer Graphics 관련 용어 정리

GPU overview를 작성하면서 느낀건데, 관련 용어를 전혀 모르겠습니다! 그래서 먼저 생소한 용어를 정리하고 연구를 진행하는게 좋을듯해서 GPU와 computer graphics 관련 용어를 정리해보려고 합니다. GPU Immediate Mode GPU vs Tile-Based GPU Tile-Based GPU란 ARM GPU가 채택한 GPU architecture입니다. 보통 사용되는 GPU architecture은 Immediate Mode GPU인데, 이와 비교해 Tile-Based GPU의 장, 단점을 알아보겠습니다. Immediate Mode GPU 전통적인 데스크탑 GPU의 architecture는 보통 Immediate Mode GPU로 알려져있습니다. Immediate Mode GPU..