[자료구조] 선택정렬
·
전공/자료구조
선택정렬 n ≥ 1개의 서로 다른 정수의 집합을 정렬 정렬되지 않은 정수들 중에서 가장 작은 값을 찾아서 정렬된 리스트 다음 자리에 배치 void SelectionSort(int *a, const int n) { //n개의 정수 a[0]부터 a[n-1]까지 오름차순으로 정렬 for (int i = 0; i < n; i++) { int j = i; //a[i]와 a[n-1] 사이에 가장 작은 정수 탐색 for (int k = i + 1; k < n; k++) if (a[k] < a[j]) j = k; swap(a[i], a[j]); //swap함수는 두 수의 위치를 교환 } } 시간복잡도 - O(n) //n은 배열 a의 크기
[C++] C언어 기반 C++ 1 (입출력, 함수 오버로딩, 매개변수 디폴트 값, 이름공간)
·
프로그래밍 언어/C++
입출력 함수 오버로딩 매개변수 디폴트 값 이름공간 1. 헤더파일 선언/입출력의 기본구성/개행의 진행 #include //헤더파일 선언 int main(void) { int num; std::cout
[객체지향프로그래밍][Java] 상속 2 (오버라이딩)
·
전공/객체지향프로그래밍
메소드 오버라이딩(Method Overriding) 슈퍼 클래스의 메소드를 서브 클래스에서 재정의 슈퍼 클래스 메소드의 이름, 매개변수 타입 및 개수, 리턴 타입 등 모든 것 동일하게 작성 메소드 무시하기, 덮어쓰기 동적 바인딩 발생 - 서브 클래스에 오버라이딩 된 메소드가 무조건 실행되는 동적 바인딩 메소드 오버라이딩 사례 class Shape { public void draw() { System.out.println("Shape"); } } class Line extends Shape { public void draw() { //오버라이딩 System.out.println("Line"); } } class Rect extends Shape { public void draw() { //오버라이딩 Sys..
[객체지향프로그래밍][Java] 상속 1 (객체 생성, 접근 지정자, 업캐스팅, 다운캐스팅, instanceof 연산자)
·
전공/객체지향프로그래밍
객체지향의 상속 부모클래스에 만들어진 필드, 메소드를 자식클래스가 물려받음 부모의 생물학적 특성을 물려받는 유전과 유사 상속을 통해 간결한 자식 클래스 작성 동일한 특성을 재정의할 필요가 없어 자식클래스가 간결해짐 장점 클래스의 간결화 - 멤버의 중복 작성 불필요 클래스 관리 용이 - 클래스들의 계층적 분류 소프트웨어의 생산성 향상 - 클래스 재사용과 확장 용이 - 새로운 클래스의 작성 속도 빠름 자바의 상속과 객체 상속 선언 - extends 키워드 사용 -> 슈퍼 클래스를 확장한다는 개념 부모 클래스 자식 클래스 슈퍼 클래스 서브 클래스 클래스 상속 만들기 - Point와 ColorPoint 클래스 class Point { private int x, y; //한 점을 구성하는 x, y 좌표 publi..
[백준][C++] 11659번 - 구간 합 구하기 4
·
백준/C++
https://www.acmicpc.net/problem/11659 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j www.acmicpc.net 풀이 수를 입력받아서 배열에 저장 - 배열에 각각 저장해서 더하면 시간 초과 -> 배열에는 배열의 이전 인덱스의 값과 입력받은 수의 합 저장 배열에서 합을 구해야 하는 구간 (끝 부분) 인덱스 값 - (처음 부분 - 1) 인덱스 값을 구하면 i~j번째 수의 합 답 #include using namespace std; int main(void) { ios::sync_with_..
[컴퓨터구조] #8 파이프라이닝 - 추가 사설 문제
·
전공/컴퓨터구조
문제 파이프라이닝이란 무엇인가요? 파이프라인 데이터패스 및 제어에서 5단계의 파이프라인으로 구성되는데 각 단계의 이름과 역할은 무엇인가요? 해저드(Hazzard)란 무엇인가요? 해저드의 유형은 무엇인가요? 데이터 해저드를 해결하는 방법은 무엇인가요? 정답 파이프라이닝은 클럭스피드가 일정한 상태에서 처리성능을 개선하는 기술입니다. 전체 작업을 여러 개의 단계로 나눠 분산처리하여 병렬성 증가를 통해 성능 개선합니다. 이전 명령이 실행완료되기 전에 다음 명령어 실행 시작합니다. RISC 프로세서를 전제로 설계됩니다. 파이프라인 데이터패스 및 제어에서 5단계의 파이프라인으로 구성되며 각 단계의 이름과 역할은 다음과 같습니다: IF(Instruction Fetch) - 명령어 인출, ID(Instruction D..
[컴퓨터구조] #7 단일 사이클 구현 2 - 추가 사설 문제
·
전공/컴퓨터구조
문제 단일 사이클 데이터패스에서 별도의 명령어 메모리와 데이터메모리를 가지는 이유는 무엇인가요? ALU에서 Load/Store와 Branch의 연산은 각각 무엇인가요? ALU 제어신호를 위한 진리값은 어떻게 결정되나요? 각 제어신호의 의미는 무엇인가요? R-type Instruction(add $t1, $t2, $t3)의 실행 과정을 설명하세요. Load Instruction의 실행 과정을 설명하세요. Branch on equal instruction(beq $t1, $t2, offset)의 실행 과정을 설명하세요. Jump 명령어가 추가될 때 필요한 추가 제어 신호는 무엇인가요? 단일 사이클 구현에서 모든 명령어에서 클럭사이클이 같은 길이를 가져야 하는 이유는 무엇인가요? 멀티 사이클 구현의 장점은 무..
[컴퓨터구조] #6 단일 사이클 구현 1 - 추가 사설 문제
·
전공/컴퓨터구조
문제 컴퓨터 구조에서 버스(Bus)의 역할은 무엇인가요? 크로스바(Cross bar)와 버스(Bus)의 차이점은 무엇인가요? 싱글포트와 듀얼포트 메모리/레지스터의 차이점은 무엇인가요? 데이터패스(Datapath)의 구성요소는 무엇인가요? 마이크로프로그래밍이란 무엇인가요? 지연(delayed) 분기란 무엇인가요? 정답 컴퓨터 안의 부품들 간에, 또는 컴퓨터 간에 데이터와 정보를 전송하는 통로입니다. 버스는 한 번에 두 개의 노드만 선택해서 통신 가능하며, 여러 노드가 같이 통신하려면 스케줄링이 필요합니다(보통 TDMA 방식). 반면 크로스바는 여러 노드가 동시에 통신 가능하지만 복잡합니다. 싱글포트는 한 번에 read 또는 write를 선택할 수 있습니다. 듀얼포트는 동시에 write와 read가 가능하게..
[컴퓨터구조] #5 프로세서 - 추가 사설 문제
·
전공/컴퓨터구조
문제 샘플 MIPS 프로세서의 구조는 어떠한가? 어떤 메모리 참조 명령어를 사용하는가? MIPS 프로세서에서 사용하는 산술/논리 명령어는 어떤 것이 있는가? 조건부 분기 명령어는 어떤 것이 있는가? MIPS 프로세서에서 프로그램 카운터(PC)의 역할은 무엇인가? 멀티플렉서(Mux)란 무엇이며 MIPS 프로세서에서 어떻게 사용되는가? MIPS 프로세서에서 명령어는 어떻게 구현되는가? 레지스터는 어떻게 선택되고 읽히는가? MIPS 부분집합의 기본적 구현을 설명하시오. 주요 기능 유닛은 무엇이며 어떻게 연결되어 있는가? 제어 유닛이란 무엇이며 기능 유닛들과 멀티플렉서의 제어선 값을 어떻게 결정하는가? 데이터패스 요소란 무엇인가? 조합소자와 상태소자의 차이점은 무엇인가? AND 게이트란 무엇인가? 덧셈기는 어떻..
[컴퓨터구조] #4 컴퓨터 연산 - 추가 사설 문제
·
전공/컴퓨터구조
문제 2진수 연산에서 산술 논리 장치(ALU)의 역할을 설명하시오. 어떤 연산을 수행할 수 있는가? 인터럽트란 무엇인가? 소프트웨어의 맥락에서 예외란 무엇인가? 2진수 연산에서 곱셈과 나눗셈의 과정을 설명하시오. 하드웨어는 어떻게 이러한 연산을 빠르게 수행하는가? 부동소수점 수에 대해 설명하시오. IEEE 754 부동소수점 표준이란 무엇인가? 단정밀도(float)와 배정밀도(double) 부동소수점 수의 차이점은 무엇인가? 메모리에서 어떻게 표현되는가? 바이어스 표기법이란 무엇이며 왜 사용하는가? 부동소수점 덧셈, 뺄셈, 곱셈 및 나눗셈이 어떻게 수행되는지 설명하시오. 서브워드 수준 병렬성이란 무엇인가? 행렬곱셈의 성능을 향상시키기 위해 어떻게 사용될 수 있는가? FP16과 FP32의 차이점은 무엇인가?..