3-1/Python

2주차-컴퓨팅사고/ 표준입출력

Donghun Kang 2024. 5. 12. 18:06

-컴퓨팅사고: 문제를 해결하기 위해 논리적이고 창의적으로 생각하는 것.

-버퍼(큰바구니): 속도 차이가 많이나는 두 장치에 끼어서 속도차이를 완화해주는 장치.

-캐시: 앞으로 사용이 예상되는 것을 미리 가져다 놓은 것.

-병렬처리: 작업 2개를 동시에 처리하는 기법

-컴퓨팅 사고의 4가지 구성

1. 추상화: 문제에서 중요하지 않은 부분은 제거 중요한 특징만으로 문제를 구성

EX)지하철 노선도, 픽토그램

->일반화: 추상화로 공통의 특성(특징)을 추려 내어 만든 개념 EX)피보나치 수열

 

2. 분해: 추상화된 문제를 해결하기 쉬운 작은 단위로 나누는 과정

->문제 분해: 복잡한 문제를 풀기 쉬운 간단한 문제로 나누는 것

분해 정복: 문제를 작은 문제로 분해하여 이를 해결하고, 해결된 작은 문제를 결합하여 큰 문제를 해결하는 방식 EX)이진탐색: 전체 숫자를 계속 반으로 나누어 비교

 

3.패턴인식: 추상화, 분해 후 데이터를 특징별로 나누어 유사한 해결 방식이 있나 찾는 과정, 해결하는 문제/ 데이터에서 의미있는 패턴을 찾아내는 과정

EX) RGB패턴, 수열..

 

4. 알고리즘: 어떠한 문제를 해결하기 위해 정해진 일련의 절차나 방법을 공식화한 형태로 표현한 것. ->자연어/ 순서도/ 의사코드/ 프로그래밍 언어

1) 자연어: 일상생활에서 사용하는 언어

2) 순서도: 약속된 기호와 선을 사용하여 문제 해결 과정을 표현

장점: 알고리즘의 흐름을 빠르게 파악/ 단점: 복잡한 프로그래밍을 순서도로 작성하기 까다롭다.

3) 의사코드(pseudo code): 특정 프로그래밍에 사용하는 언어와 유사한 서술로 알고리즘을 표현한 것.

->알고리즘의 조건

(1) 입력: 알고리즘에 입력되는 자료가 0개 이상 존재

(2) 출력: 적어도 두개 이상의 서로 다른 결과가 출력(항상 같은 값을 출력하지 않는다)

(3) 유한성(종결성): 유 한번의 명령어를 수행 후에 종료

(4) 명확성: 알고리즘의 명령이 모호하지 않고 명확

(5) 수행 가능성: 알고리즘의 명령은 수행 가능 해야함

->알고리즘 설계- 제어구조

(1) 순차구조: 시간적인 순서에 따라 위에서 아래로 하나씩 실행

(2) 선택구조: 특정 조건에 만족하는지 아닌지에 따라 다음 명령을 선택적으로 실행

(3) 반복구조: 동일한 동작을 반복적으로 실행

->알고리즘 분석

(1) 시간 복잡도: 알고리즘이 실행되어 어느 정도의 시간이 필요한지 측정하는 방법

(2) 공간 복잡도: 알고리즘이 문제를 해결하는데 어느 정도의 저장 공간을 필요로 하는지 측정하는 방법

4) 프로그래밍 언어

->객체 지향 언어: 데이터를 담고 있는 통과 통에 담긴 데이터를 처리할 수 있는 함수를 하나로 묶어 놓은것.

->컴파일러: 소스코드를 컴퓨터가 실행할 수 있는 기계어로 번역하여 실행 파일을 만든 후 한번에 실행

->인터프리터: 소스 코드를 한 번에 한 행씩 번역하여 실행

-표준 출력

#print()

EX)

print(“가나다라”) = 가나다라 -> 문자열 표시(“”, ‘’사용/ 한쪽만 사용시 오류/ )

#sep=’‘: 구분자(sep뒤에 나오는 구분자는 출력하려고 하는 값과 값 사이에 적용)

=>print(값1, 값2, sep=’문자 또는 문자열‘)

#end=’‘: 문장 출력 후 마지막에 무엇을 쓰고 끝낼지 정할 수 있음

=>print(값, end=’문자 또는 문자열‘)

#\n(줄바꿈)

'3-1 > Python' 카테고리의 다른 글

7주차-튜플&실전문제  (0) 2024.05.12
6주차-List  (0) 2024.05.12
5주차-반복문  (0) 2024.05.12
4주차-연산자/ 조건문  (0) 2024.05.12
3주차-변수와 자료형/ 문자열과 형변환  (0) 2024.05.12