전체 글 177

[C/C++] 03 - 제어 구조 기초 - 제어 구조(Control)와 조건문 기초

Index 제어 구조(Control)와 조건문 기초 Flow of Control, Control Construct if statement Comparison and Logical Operators if - else statement and Nested if statements 1. Flow of Control, Control Construct ✓ Flow of Control & Control Construct/Statement ① Flow of Control(제어 흐름)이란? 프로그램에서 실행되는 문장들의 실행 순서 특별히 지정하지 않으면, 프로그램 실행은 첫 번째 문장에서 시작하여 한 번에 한 문장씩 순차적으로 실행된다. ② Control Construct (제어 구조) / Control Stateme..

Language Study/C 2022.10.03

[C/C++] 02 - 자료형과 연산 기초

Index 자료형과 연산의 기초; 오류의 분류 Expressions, Operators 자료형과 연산 (Data Types and Operations) 형 변환 (Type Conversion) 오류의 분류 Syntax Error, Logical Error, Run-Time Error 1. Expressions, Operators ✓ 연산자와 수식 ① 수식 (Expression) 값을 나타내기 위한 일련(Sequence)의 연산자들과 피연산자들의 조합 ② 연산자 (Operator) 이미 정의된 산술 혹은 논리 연산을 수행하는 기호 C언어 연산자의 종류 ③ 피연산자 (Operand) 연산의 대상이 되는 상수, 변수, 혹은 다른 수식 등 cf. 피연산자 수에 따라 단항 연산자 (unary operator): ..

Language Study/C 2022.10.02

[C/C++] 02 - 자료형과 연산 기초 - C프로그램 구조와 변수, 표준 입출력 기초

Index 프로그램 소스 코드의 구조 Function Definition: Heater + Body; Body : Declaration + Statement; Preprocessor Directives: #include, #define Comments: //, /* */ 변수 선언 (Variable Declaration) Type & Identifier 기초 표준 입출력 1. C 프로그램 소스 코드의 구조 ✓ C 프로그램 소스 코드의 구성 요소 ① 함수 (Function) C언어는 크고 복잡한 일을 여러 개의 함수로 나눠 해결하는 것을 핵심 프로그램 원리로 한다. 함수는 C 소스 코드의 핵심 구성 요소다. 항상 하나 이상의 함수 정의로 구성된다. 함수 정의(Function Definition)는 함수 식..

Language Study/C 2022.10.02

[C/C++] 01 - C언어 소개와 컴파일의 이해 (2)

컴퓨터 프로그램과 실행 컴퓨터 프로그램(Program)이란? ① Sequence of instructions and related data ② 명령어는 기계어가 직접 해독하고 실행할 수 있는 이진 값으로 표현되는 기계어 ③ 실행 파일 (Executable File)의 형태로 보조기억장치에 저장/설치됨 컴퓨터의 H/W 구성 요소 중앙 처리 장치 - CPU (Central Processing Unit) 주기억장치 - Main Memory 보조기억장치 - Secondary Storage 입출력 장치 - Input / Output Device 프로그램의 실행 과정 보조기억장치에 저장된 프로그램 실행 파일을 Main Memory로 적재(Loading) CPU는 Main Memory로부터 프로그램의 명령어들을 순차..

Language Study/C 2022.10.02

[C/C++] 01 - C언어 소개와 컴파일의 이해 (1)

Index 프로그래밍 언어 분류 C 언어 소개 Compiled Language vs. Interpreted language C 언어 컴파일과 Python 언어 인터프리트 비교하기 Von Neumann Architecture 1. 프로그래밍 언어와 분류 프로그래밍 언어는 프로그램을 작성하기 위한 언어이다. 사람이 컴퓨터에게 시키고 싶은 내용을 표현하기 위한 표기법 인간 친화적 수준에 따라 기계어/어셈블리어/고급 언어로 분류한다. 기계어 이진수 코드로 CPU마다 고유의 기계어 ->ISA 어셈블리어 기계어 이진수코드 ->기계화 코드로 대치 Symbolic Machine Code로도 불림 고급언어 영어와 비슷한 구문이며 사람이 읽고 쓰기 쉬움 기계어에 독립적임 -> 기계의 세부사항(ISA)을 알지 못해도 프로그..

Language Study/C 2022.10.01

[C/C++] 컴퓨터 시스템과 프로그램의 이해

Index Univalsal Computing Device and Turing Machine 컴퓨터 시스템: H/W + S/W Sequence of Instructions (명령어 순차 조합) 컴퓨터를 활용한 문제 해결: Transformations between layers of abstraction Algorithms의 속성 1. Univalsal Computing Device and Turing Machine Introduction to the World of Computing Computer is Electronic idiot. => It does exactly what we tell it to, nothing more. The components of a computer system: Hardw..

Language Study/C 2022.10.01

[백준] 11047번 동전0 (Python)

https://www.acmicpc.net/problem/11047 11047번: 동전 0첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수)www.acmicpc.net풀이과정①문제 바라보기기본적인 그리디 문제다.어렵게 낼 수 있다면 굉장히 어렵게 낼 수 있는 문제인데 이 문제의 경우에는 굉장히 기본기본기본적인 문제같다. ②아이디어 펼치기연산자 %와 //을 활용하면 간단히 풀릴 것이다.몫을 구해서 만약 1 이상이라면 남는 돈은 %한 값이 되는거고 빠져나간 동전의 개수는 //가 되는 것이다.이때 필요한 동..

[백준] 11724번 연결 요소의 개수 (Python)

https://www.acmicpc.net/problem/11724 11724번: 연결 요소의 개수첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주www.acmicpc.net 풀이과정①문제 바라보기간단한 graph이론 문제다. DFS문제고, 이해를 위해서 문제에서 제시한 예제 2개를 간선과 노드로 표현해봤다.위의 그림을 보면 1,2,5가 연결되어있고 3,4,6이 연결되어있음을 확일할 수 있다.  따라서 출력값이 2가 되는 것이며,두번째 그림을 보면 1~6이 모두 어떻게든 연결되어있기에 출력값이 1이 됨을 확인할..

[백준] 11054번 가장 긴 바이토닉 부분 수열 (Python)

https://www.acmicpc.net/problem/11054 11054번: 가장 긴 바이토닉 부분 수열첫째 줄에 수열 A의 크기 N이 주어지고, 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ N ≤ 1,000, 1 ≤ Ai ≤ 1,000)www.acmicpc.net풀이과정①문제 들여다보기이 문항은 앞전에 푼 11053문제에서 아주 살짝 업그레이드 된 버전의 문제이다.https://stopmin.tistory.com/46 [백준] 11053번 가장 긴 증가하는 부분수열 (Python)https://www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 ..

[백준] 11053번 가장 긴 증가하는 부분수열 (Python)

https://www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이www.acmicpc.net풀이과정①문제 바라보기N으로 전체 수열의 길이를 받고, 다음줄에 array가 입력된다.array에서 몇 개의 수를 지움으로써 만들 수 있는 가장 긴 증가하는 수열의 길이를 인쇄하는 문제다. ②아이디어 열기이 문제는 동적계획법으로 해결이 된다.이중 for문을 활용하여서 해결되는 문제였다.현재 해당하는 위치의 숫자보다 앞에 있는..