본문 바로가기

분류 전체보기

(308)
[백준/Python] 11055번: 가장 큰 증가하는 부분 수열 문제 https://www.acmicpc.net/problem/11055 11055번: 가장 큰 증가하는 부분 수열 수열 A가 주어졌을 때, 그 수열의 증가하는 부분 수열 중에서 합이 가장 큰 것을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {1, 100, 2, 50, 60, 3, 5, 6, 7, 8} 인 경우에 합이 가장 큰 증가하는 www.acmicpc.net 문제 요약 수열 A가 주어졌을 때, 그 수열의 증가하는 부분 수열 중에서 가장 큰 합을 출력한다. 예를 들어 A = {1, 100, 2, 50, 60, 3, 5, 6, 7, 8} 인 경우, 가장 큰 증가하는 부분 수열은 {1, 100, 2, 50, 60, 3, 5, 6, 7, 8}이므로 답은 113이다. 코드 N = int(inpu..
[Embedded Software] Linux Basic + 한국항공대학교 최차봉 교수님의 임베디드 SW 과목 내용을 정리한 글입니다. Linux Torvals가 minix를 통해 80386 PC를 위한 커널로 처음 개발했다. 대표적인 리눅스 배포판 (Kernel, Shell, Free SW Packages) - Debian(1993), Fedora(2003), CentOS(2004), Ubuntu(2004) Linux의 구조 Hardware - Hardware Interface - Kernal Space - System Call Interface - User Space Hardware Interface - Hardware 장치와 소프트웨어 간 상호작용을 가능하게하는 연결점 역할 (USB, HDMI 등) Kernel Space - OS(운영체제): Proces..
[Algorithm] 알고리즘 기초 (2) + 항공대학교 이인복 교수님의 알고리즘 해석 및 설계 과목 내용를 정리한 글입니다. 알고리즘 설계 과정 - 크고 복잡한 문제의 해법을 바로 설계하는 것은 어렵다. => 문제를 분석하여, 풀 수 있는 크기의 작은 문제들로 나누고, 이 문제들을 푼 후, 각 문제들 간의 관계를 이용하여 해법을 연결한다. 하노이 탑 문제 기둥 1에 있는 n개의 원반을 어떻게 규칙을 만족하면서 기둥 3으로 옮길 것인가? 규칙 1. 언제나 원반은 1개씩 옮길 수 있다. 규칙 2. 작은 원반위에 큰 원반은 옮길 수 없다. n = 1, 2인 경우에는 쉽게 풀 수 있으나 조금만 커지면 직접 푸는 것은 어렵다. => 알고리즘 설계 기법 중 되부름(recursion, 재귀)을 이용한다. n = 1인 경우, 그냥 ..
[Computer Architecture] 컴퓨터의 발전 (역사) + 한국항공대학교 길현영 교수님의 컴퓨터구조론 과목 내용을 정리한 글입니다. 최초의 컴퓨터: 파스칼의 계산기 1642년, Blaise Pascal (프랑스) 덧셈과 뺄셈을 수행하는 기계적 카운터 다이얼의 위치에 의하여 십진수를 표시하는 원형판 세트들로 구성되어있다. 톱니 바퀴가 서로 맞물려 돌아갈 때마다 '받아올림' 또는 '받아내림'을 계산한다. 각 원형판은 일시적으로 숫자를 기억하는 레지스터로 사용된다. Leibniz의 기계 1671년, Gottfried Leibniz (독일) 덧셈과 뺄셈 및 곱셈과 나눗셈도 할 수 있는 계산기이다. Pascal의 계산기에 두 개의 원형판들을 추가하여 반복적 방법으로 곱셈과 나눗셈을 수행한다. 이후 많은 계산 기계들의 조상이 되었다. Difference Engine (..
[Computer Architecture] 컴퓨터 정보의 표현과 저장 + 한국항공대학교 길현영 교수님의 컴퓨터구조론 과목 내용을 정리한 글입니다. 컴퓨터 정보의 표현과 저장 - 컴퓨터 정보는 2진수 비트(bit)들로 표현한다. (1byte = 8bit) => 컴퓨터에게 모든 데이터는 '010101...'과 같은 0과 1 숫자의 나열일 뿐이다. 진법 : 유한한 심볼로 숫자를 표현하는 방법 - 10진법: 0 ~ 9, 10개의 심볼로 숫자를 표현 - 2진법: 0과 1로 숫자를 표현 프로그램 코드 - 고급 언어 → 컴파일러로 번역 → 어셈블리 언어 → 어셈블러로 번역 → 기계어 컴파일러: 고급 언어 프로그램을 어셈블리어 또는 기계어 프로그램으로 번역하는 SW이다. 어셈블러: 어셈블리 프로그램을 기계어 프로그램으로 번역하는 SW이다. 1. 고급 언어 (high-level langu..
[Computer Architecture] 컴퓨터의 기본 구성 + 한국항공대학교 길현영 교수님의 컴퓨터구조론 과목 내용을 정리한 글입니다. 컴퓨터(시스템)의 기본 구성 1. 사용자 (user) 2. 응용 소프트웨어 (application software) - 예) 사무용, 그래픽용, 멀티미디어용, 게임용, 통신 및 네트워크 용 등 - 특정 목적을 갖는다. (앱, 프로그램) 3. 시스템 소프트웨어 (system software) - 예) mac, windows, ios, android 등 - 컴퓨터 하드웨어를 움직이는 소프트웨어이다. (응용 소프트웨어보다 컴퓨터 하드웨어에 더 가까이, 직접적으로 제어가 가능하다.) - 응용 소프트웨어를 실행하기 위한 플랫폼 역할을 한다. (하드웨어와 응용 소프트웨어 사이에서 역할 수행) => 각 응용프로그램에서 공통적인 기능을 제공한..