본문 바로가기

분류 전체보기

(308)
[Kotlin] 확장 + 항공대학교 김철기 교수님의 객체 지향 프로그래밍 과목 내용를 정리한 글입니다. 클래스 확장 함수 - 이미 존재하는 클래스의 새로운 멤버를 확장할 수 있다. => 실제로 클래스에 멤버를 추가하는 것이 아니다. - 정의 후 기존 클래스 멤버와 동일하게 이용이 가능하다. // String 객체에 truncate 함수 확장 // String을 maxLength 길이로 자르는 함수 fun String.truncate(maxLength: Int):String { return if(length 즉, 이미 클래스에 존재하는 함수와 동일한 이름의 함수는 만들 필요가 없다. 타 패키지의 확장 함수 - 타 패키지에 정의된 확장 함수는 import가 필요하다. package kr.kau.util // String을 max..
[백준/Python] 1302번: 베스트셀러 문제 https://www.acmicpc.net/problem/1302 1302번: 베스트셀러 첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고 www.acmicpc.net 문제 요약 오늘 팔린 책의 제목을 팔린 만큼 입력 받고, 가장 많이 팔린 책의 제목을 출력한다. + 가장 많이 팔린 책이 여러 개일 경우에는 사전 순으로 가장 앞서는 제목을 출력한다. 코드 N = int(input()) dic = {} # 딕셔너리의 Key값에 제목, Value값에 팔린 개수 저장 for _ in range(N): book = input() if book in dic...
[Computer Architecture] CISC & RISC + 한국항공대학교 길현영 교수님의 컴퓨터구조론 과목 내용을 정리한 글입니다. "명령어 집합 복잡도에 따른 컴퓨터 구조"에서의 "명령어 집합 복잡도"란? => 하드웨어(CPU)가 이해할 수 있는 명령어 집합(기계어)의 복잡도 ex) 많다, 다양하다 CISC (Complex Instruction Set Computer) 1. 메모리가 매우 고가이고, 속도가 느리다. ~> 메모리에서 갖고 올 명령어의 숫자를 줄이자. (한 번에 많이 가져오자.) 2. 낮은 수준의 프로그래밍 기술을 갖고 있다. ~> HW에서 지원해주자. (고급 프로그래밍 언어의 등장) => 명령어 집합(ISA)에서 복잡하지만 강력한 명령어들이 추가되었다. (명령어 집합의 크기 ↑) ex) ..
[백준/Python] 12101번: 1, 2, 3 더하기 2 문제 https://www.acmicpc.net/problem/12101 12101번: 1, 2, 3 더하기 2 n을 1, 2, 3의 합으로 나타내는 방법 중에서 사전 순으로 k번째에 오는 것을 출력한다. k번째 오는 식이 없는 경우에는 -1을 출력한다. www.acmicpc.net 문제 요약 정수 n을 입력 받고, n을 1, 2, 3의 합으로 나타내는 방법을 사전 순으로 정렬하고, k번째 식을 출력한다. (1 ≤ n ≤ 10) ex) 정수 4를 1, 2, 3의 합으로 나타내는 방법 1+1+1+1 1+1+2 1+2+1 2+1+1 2+2 1+3 3+1 위 방법을 사전 순으로 정렬하면, 1+1+1+1 1+1+2 1+2+1 1+3 2+1+1 2+2 3+1 코드 n, k = map(int, input().spl..
[Computer Architecture] 주소 지정 방식 + 한국항공대학교 길현영 교수님의 컴퓨터구조론 과목 내용을 정리한 글입니다. 주소 지정 방식 (addressing mode) 명령어의 피연산자 필드를 사용하여, 데이터 유효 주소(effective address)를 결정하는 방식이다. 데이터 유효 주소: 메모리나 저장 장치에 실제로 유효한 데이터가 저장되어 있는 위치를 가리키는 주소 0-단계 주소 지정 방식 - 유효 주소를 확정하기 위해 연산 과정을 0번 수행한다. - 데이터 유효 주소를 명시하지 않는다. 1-단계 주소 지정 방식 - 유효 주소를 확정하기 위해 연산 과정을 1번 수행한다. - 피연산자 필드가 데이터 유효 주소이다. 2-단계 주소 지정 방식 - 유효 주소를 확정하기 위해 연산 과정을 2번 수행한다. - 피연산자 필드가 데이터의 유효 주소를 ..
[백준/Python] 14501번: 퇴사 문제 https://www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 문제 요약 상담원으로 일하고 있는 백준은 퇴사를 하려고 한다. 오늘부터 N+1일째 되는 날, 퇴사를 하기 위해서 남은 N일 동안 상담을 통해 낼 수 있는 최대 수익을 출력한다. 각각의 상담은 상담을 완료하는데 걸리는 시간 Ti와 상담을 했을 때 받을 수 있는 금액 Pi로 이루어져 있다. + 상담을 하는 기간동안은 다른 상담을 할 수 없다. 코드 N = int(input()) schedule = [list(map(int, input().split())) for _ in range(N)] # 0일 ~ N - 1일 # schedule..