본문 바로가기

분류 전체보기

(308)
[백준/Python] 2193번: 이친수 문제 https://www.acmicpc.net/problem/2193 2193번: 이친수 0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않 www.acmicpc.net 문제 요약 0과 1로만 이루어진 수를 이진수라고 한다. 이친수는 이진수들 중 특별한 성질을 갖는 수이다. 1. 이친수는 0으로 시작하지 않는다. 2. 이친수에서는 1이 두 번 연속으로 나타나지 않는다. (11을 부분 문자열로 갖지 않는다.) n이 주어졌을 때, n자리 이친수의 개수를 출력한다. 코드 n = int(input()) dp = [0, 0] * 91 # dp[i][0]는 ..
[백준/Python] 23349번: 졸업 사진 문제 https://www.acmicpc.net/problem/23349 23349번: 졸업 사진 첫째 줄에 학교가 공지할 것으로 예상되는 혼잡 (장소, 시간대) 쌍을 공백으로 구분하여 출력한다. 이때 시간대는 조건을 만족하는 가장 긴 시간대를 의미한다. www.acmicpc.net 문제 요약 한국항공대학교 졸업식에 참가하는 모든 사람은 비행기가 보이게 사진을 찍고 싶어한다. n개의 학생 이름, 장소, 시간대 정보들이 입력 받아, 최대한 많은 사람이 촬영할 수 있도록 예상되는 혼잡 장소와 시간대를 공지한다. 1. 가장 많은 사람이 제출한 (장소, 시간대) 쌍을 선택한다. 2. 1번에 해당하는 장소가 여러 개라면, 사전 순으로 가장 앞에 오는 장소를 선택한다. 3. 2번에 해당하는 시간대가 여러 개라면, ..
[Kotlin] 제네릭스 + 항공대학교 김철기 교수님의 객체 지향 프로그래밍 과목 내용를 정리한 글입니다. 제네릭과 파라미터 제네릭이란? => 클래스 내부에서 사용하는 특정 대상의 타입을 파라미터화 한 것 ex) ArrayList : T 타입을 가지는 원소의 ArrayList ex) HashMap : K타입의 키와 V타입의 값을 가지는 Entry의 HashMap + T, K V 를 타입 파라미터라고 한다. 제네릭을 사용하여 참조 변수 및 객체를 정의할 수 있다. - 타입 파라미터에 대한 실제 타입을 지정해야한다. - 타입 추론이 가능할 경우 타입 인자를 생략할 수 있다. fun main() { val list = ArrayList() list.add(5) list.add(6) // list.ad..
[Kotlin] 파일과 I/O 스트림 + 항공대학교 김철기 교수님의 객체 지향 프로그래밍 과목 내용를 정리한 글입니다. I/O 관련 클래스 InputStream: Byte 단위로 입력을 읽어 온다. - FileInputStream: 파일을 Byte 단위로 읽기 위한 클래스 OutputStream: Byte 단위로 출력한다. - FileOutputStream: 파일을 Byte 단위로 쓰기 위한 클래스 Reader: 문자 단위로 입력을 읽어 온다. - FileReader: 파일을 문자 단위로 읽기 위한 클래스 Writer: 문자 단위로 출력한다. - FileWriter: 파일을 문자 단위로 쓰기 위한 클래스 import java.io.FileWriter fun main() { val writer = File..
[Computer Architecture] Cache Memory: 성능 향상 + 한국항공대학교 길현영 교수님의 컴퓨터구조론 과목 내용을 정리한 글입니다. 캐시 메모리 실패(Miss) 사례 유형: 3C 캐시 성능 향상을 위한 방법으로 캐시 실패율을 낮추기 위해 파악해야한다. 1. 강제 실패 (Compulsory Miss, Cold Miss, First Reference Miss) = 해당 메모리 블록의 최초 접근에 의한 캐시 Miss이다. + 블록 크기를 크게 하거나, 가장 접근 가능성이 큰 블록의 Prefetch(미리 가져오기)로 감소시킬 수 있다. + 캐시 사이즈를 키워도 의미가 없다. 2. 용량 실패 (Capacity Miss) = 캐시 메모리의 유한한 용량 때문에 발생한다. - 블록 교체 후 다시 그 블록을 가져올 때 발생한다. (캐시 용량 < 프로그램 크기) 3. 충돌 실..
[Computer Architecture] Cache Memory: 블록 교체 & 블록 갱신 + 한국항공대학교 길현영 교수님의 컴퓨터구조론 과목 내용을 정리한 글입니다. 블록 교체 캐시 공간이 없는 상황에서, 어느 캐시 블록을 비울 것인지 결정이 필요하다. 상황 1. 캐시의 모든 블록이 사용 중일 경우 상황 2. 일부 캐시 블록이 비어 있으나 불록 사상 방식에 따라 이미 사용중인 캐시 블록에 위치해야할 경우 블록 교체 전략 (Replacement Policy) Belady의 MIN 알고리즘 가장 이상적인 블록 교체 방식으로, 가장 오랫동안 참조되지 않을 블록을 교체한다. - 미래 예측이 필요하다. (거의 구현이 불가능하다.) LRU 방식(Least Recently Used) - 가장 많이 사용 가장 오래전에 참조된 블록을 교체한다. MIN 알고리즘에 근접할 정도의 최고 적중률을 보인다. 모든 블..