분류 전체보기 82

[Boj] 백준 C++ #1735 분수 합

문제 분수 A/B는 분자가 A, 분모가 B인 분수를 의미한다. A와 B는 모두 자연수라고 하자. 두 분수의 합 또한 분수로 표현할 수 있다. 두 분수가 주어졌을 때, 그 합을 기약분수의 형태로 구하는 프로그램을 작성하시오. 기약분수란 더 이상 약분되지 않는 분수를 의미한다. 입력 첫째 줄과 둘째 줄에, 각 분수의 분자와 분모를 뜻하는 두 개의 자연수가 순서대로 주어진다. 입력되는 네 자연수는 모두 30,000 이하이다. 출력 첫째 줄에 구하고자 하는 기약분수의 분자와 분모를 뜻하는 두 개의 자연수를 빈 칸을 사이에 두고 순서대로 출력한다. #include using namespace std; int gcd(int x, int y){ // 유클리드 알고리즘 if(x>a>>b>>c>>d; son = a*d ..

Boj 2023.12.22

[Boj] 백준 C++ #9613 GCD합

최근에 정리한 유클리드 알고리즘을 활용해보기 위해 해당 카테고리의 문제 중 하나인 9613번을 풀어보았다. 유클리드 알고리즘은 최대공약수를 빠르고 쉽게 구할 수 있는 방법 중 하나로 아래 링크로 자세한 내용을 확인할 수 있다. [알고리즘] 유클리드 알고리즘(유클리드 호제법) 이산수학 보강 수업에서 유클리드 알고리즘에 대해 배웠다. 1학년 때부터 계속 배웠던건데 이번으로 3번째 정도 들으니까 좀 알겠더라.. 유클리드 알고리즘(유클리드 호제법)이란 2개의 자연수 ima9ine.tistory.com 문제 양의 정수 n개가 주어졌을 때, 가능한 모든 쌍의 GCD의 합을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 t (1 ≤ t ≤ 100)이 주어진다. 각 테스트 케이스는 한 줄로 이루어..

Boj 2023.12.22

[알고리즘] 유클리드 알고리즘(유클리드 호제법)

이산수학 보강 수업에서 유클리드 알고리즘에 대해 배웠다. 1학년 때부터 계속 배웠던건데 이번으로 3번째 정도 들으니까 좀 알겠더라.. 유클리드 알고리즘(유클리드 호제법)이란 2개의 자연수의 최대공약수를 쉽게 알아낼 수 있는 알고리즘이다. 최대공약수란 두 정수를 나누어 떨어지게 하는 수 중 가장 큰 정수를 의미한다. 두 정수 A, B의 최대공약수 k를 구해보자 (A > B) A = B * q + r 이라고 할 수 있다. (q는 몫, r은 나머지) A와 B의 최대 공약수는 k이므로 A = k·A', B = k·B' 라고 하자. (A'과 B'은 서로소) 그러면 k·A' = ( k·B') * q + r 이다. 이때, r = k·A' - ( k·B') * q 라고 쓸 수 있다. r = k(A' - B'·q)이므로..

알고리즘 2023.12.20

[컴퓨터 구조] 4.11 명령어를 통한 병렬성, ILP(Instruction Level Parallelism)

'컴퓨터 구조 및 설계 MIPS edition 제 6판' 교재와 국민대학교 임은진 교수님의 강의를 바탕으로 정리 및 요약한 글입니다. 정리 과정에서의 오류 및 오타가 있을 수 있습니다 :) 파이프라이닝은 명령어들 사이의 병렬성을 이용한다. 이를 ILP(Instruction Level Parallelism, 명령어 수준 병렬성)이라고 한다. 병렬성을 증가시키면 성능이 좋아질 것이므로 ILP를 증가시켜야 한다. 그 방법으로는 두 가지가 있다. 1. Deeper Pipeline 첫 번째 방법은 파이프 라인의 깊이를 증가시켜 더 많은 명령어들을 중첩시키는 것이다. 그렇게 되면 stage 당 일이 줄어들기 때문에 clock cycle이 더 짧아져 성능이 좋아질 수 있다. 교재의 비유에 따르면 이 방법은 세탁, 헹..

컴퓨터구조 2023.12.14

[컴퓨터 구조] 4.10 예외(Exception)

'컴퓨터 구조 및 설계 MIPS edition 제 6판' 교재와 국민대학교 임은진 교수님의 강의를 바탕으로 정리 및 요약한 글입니다. 정리 과정에서의 오류 및 오타가 있을 수 있습니다 :) 프로그램을 수행하다보면 예상하지 못한 이벤트가 발생하여 명령어 실행의 정상적인 흐름을 바꿔주어야 하는 경우가 생긴다. 예외(Exception)과 인터럽트(Interupt)가 대표적이다. 예외는 프로세서 내부에서 발생한 것이고 인터럽트는 문제의 원인이 프로세서 외부에 있는 것이다. 하지만 예외와 인터럽트를 구분하지 않는 경우가 많다. 그렇다면 이 문제를 다루는 두 가지 방법에 대해서 더 알아보자. MIPS 구조에서 예외는 System Control Coprocessor에 의해 관리된다. 문제가 생긴 명령어의 PC값을 E..

컴퓨터구조 2023.12.14

[컴퓨터 구조] 4.9 제어 해저드(Brach Hazard Exception)

'컴퓨터 구조 및 설계 MIPS edition 제 6판' 교재와 국민대학교 임은진 교수님의 강의를 바탕으로 정리한 글입니다. 정리 과정에서의 오류 및 오타가 있을 수 있습니다 :) Pipeline hazards란? 파이프라인 프로세서에서 명령어의 수행이 끝나기 전에 다른 명령어의 수행이 시작되기 때문에 생기는 문제를 말한다. 파이프라인의 종류 3가지 Structure hazards -> 회로를 바꾸어 해결 Data hazards -> data forwarding(bypassing)으로 해결 Control hazards -> 어떻게 해결할까? 이번 글에서는 Pipeline hazard 중에서도 Control hazards에 대해 알아보자 Brach 명령은 flow of control을 변경하므로 Fetch..

컴퓨터구조 2023.12.14