728x90
728x90

분류 전체보기 292

[Computer Architecture] Instructions: Language of the computer - 2

Procedure call requirements Caller callee에게 parameter를 넘겨야 함 callee에게 return address를 넘겨야 함 volatile한 것은 무엇이든간에 저장해야 함 ex) caller에서 x3 register에 값을 넣었는데 callee에서 x3 register에 다른 값을 넣어서 사용하게 되면 기존의 값이 날아가버리게 되므로 다른 곳에 저장해놓아야 함 Callee 자신의 반환 주소를 저장해야 함 자신이 사용할 local storage를 제공해야 함 recursive call을 지원해야 함 Program stack 스택은 procedure에 동적 데이터를 할당하기 위한 자연스러운 구조 (call/ return linkage information에서도 마찬가..

[Computer Architecture] Instructions: Language of the computer - 1

Registers 프로세서 안에 들어있는 하드웨어 구성 요소임 CPU를 만들고나서, 사용가능한 레지스터의 개수를 바꾸지 못하는 이유임 RISC-V 아키텍쳐에서는 32개의 integer 레지스터 이용 가능 0부터 31번까지 이름 붙여져 있음 x0-x31 어셈블리에서 이름 사용 가능 32-bits wide x0 레지스터는 항상 0임 x0에 다른 값을 쓰려고하면 무시됨 Instruction architecture를 정의할 때, architecture가 제공하는 register를 먼저 정의해야 함 Two's complement operations Negate: 모든 bit를 invert하고 1을 더함 더 큰 bit 형태로 나타내는 법 RISC-V에서는 the most significant bit(the sign..

[SWEA] 1251 하나로

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV15StKqAQkCFAYD SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com풀이 과정최소 신장 트리를 구현해야 겠다.프림 알고리즘크루스칼 알고리즘Boruvka 알고리즘E = V^2인 그래프프림 알고리즘 -> 최소 비용을 완전 탐색을 사용하여 O(V) 찾기 -> O(V^2)크루스칼 알고리즘 -> 간선 정렬이 필요하기 때문에 O(V^2logV^2) = O(V^2logV)Boruvka 알고리즘-> O(V^2logV)프림 알고리즘으로 선택풀이 코드#include#include #inc..

[SWEA] 1248 공통조상 (c++)

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV15PTkqAPYCFAYD SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com풀이 과정문제에서 나온 것처럼 이진트리를 구현하는게 먼저라고 생각했습니다.공통 조상을 찾기위해서 하나를 root노드까지 쭉 검사해서 그 경로를 비교하는 것이 아니라, 각각 번갈아 가면서 parent를 조사하고 조사된 노드들을 표시해놓습니다. 다른 노드가 검사했을 때, 이미 조사되었다고 나온다면 그것이 가장 가까운 공통 조상이 됩니다. 이렇게 하면 root까지 조사할 필요가 없습니다.이진 트리이고 중간에 ..

[SWEA] 1232 사칙연산(c++)

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV141J8KAIcCFAYD SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com풀이 과정예시에서 나온 트리가 (9/(6-4))*3를 나타내는 것을 보고 post-order 방식으로 구현되어 있는 트리임을 알았습니다.루트에서 부터 left, right 순서대로 계속 탐색을 해서 가장 아래에 있는 노드에 도달하고, 노드가 그냥 상수라면 다시 부모노드로가서 해당하는 연산자에 맞게 계산하는 방식으로 재귀적으로 구현해야 겠다고 생각했습니다.풀이 코드#include#include#define..

[SWEA] 1233 사칙연산 유효성 검사 (C++)

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV141176AIwCFAYD SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com문제 접근이진 트리에서 부모 노드에는 항상 연산자 기호가 있어야 하고, 리프 노드에는 항상 양의 정수가 있어야지 계산이 가능하다고 판단할 수 있습니다. 인덱스가 1부터 시작한다고 하였을 때, 리프 노드는 (전체 노드의 수 / 2)의 내림값 보다 큰 인덱스에 위치하는 노드들이고, non-leaf 노드들은 1부터 (전체 노드의 수 / 2)의 내림값까지의 인덱스에 해당하는 노드들이라는 것을 이용하여 문제를 풀..

[SWEA] 1230 암호문3 (C++)

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14zIwqAHwCFAYD SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com리스트와 벡터의 차이점C++에서 리스트는 원소의 인덱스로 직접 접근이 불가능하여 특정 원소에 접근하기 위해서 처음이나 끝부터 선형 탐색을 해야합니다. 벡터의 경우에는 개별 원소들로 접근이 가능합니다.출처: https://chanheess.tistory.com/154 vector와 list의 차이점vector 연속적인 메모리. 미래에 들어갈 요소를 위해 선할당을 한다 각 요소는 요소 타입 그자체만큼의 공간..

[Computer Architecture] Performance

Computer Performance == TIME Response Time(latency) 프로그램이 시작해서 끝날 때까지 걸리는 시간 (time to do the task) 지연시간(latency)라고도 함 Throughput 처리량 주어진 시간 당 하는 일 (tasks per unit time) Execution Time (실행 시간) Elapsed Time disk, memory accesses, I/O 등 모든 task들의 시간을 모두 포함한 시간 유용한 정보이긴 하나 성능을 비교하는데 있어서는 좋지 않을 수 있음 CPU time 다른 프로그램이 동작하는 시간이나 I/O 시간 등을 포함하지 않고 해당 프로그램을 사용하는데 걸린 시간만을 나타냄 더 구체적으로는 system time(os가 cpu ..

Dart API와 python 이용해 공시정보 엑셀 저장하기

코드 목적 KOSPI 시장의 거래대금 상위 20개 종목에 대한 공시 정보를 크롤링하고, 결과를 엑셀 파일에 저장하는 과정을 구현한 것입니다. 주요 작업으로는 pykrx를 통한 KOSPI 데이터 수집, XML 파싱, OpenDART API를 사용한 공시 정보 수집 및 결과를 엑셀 파일에 저장합니다. https://drive.google.com/file/d/1A7dBx8C66RhZWyqNetVcoM9iRmAGCD3F/view?usp=share_link CORPCODE.xml drive.google.com def disclosure_information_crawling(): import pandas as pd import datetime from pykrx import stock today = datetime..

파이썬 pykrx 이용해서 금융데이터 받아 DB 생성하기

KOSPI 시장 데이터를 수집하고 데이터베이스에 저장하는 과정을 구현 pykrx 라이브러리 : 데이터 수집에 사용 sqlite3 라이브러리: 데이터를 로컬 SQLite 데이터베이스에 저장 import pandas as pd import datetime today = datetime.datetime.today() # 현재 날짜와 시간 저장합 start_date = today - datetime.timedelta(days=7) # 일주일 전 날짜를 계산하여 'start_date' 변수에 저장 today_str = datetime.datetime.strftime(today, '%m/%d/%y') # 날짜를 문자열 형식 '%m/%d/%y'로 변환 start_date_str = datetime.datetime.s..

728x90
728x90