전체 글
-
파이썬 기본편 정리(2)공부일기/파이썬 2020. 8. 15. 00:42
함수 def를 이용해 새로운 함수 정의할 수 있다 전달값과 반환값 def 함수(전달값) Return 반환값 기본값 def profile(name, age=20, main_lang=“Python”): print(“이름: {}, 나이: {}, 주 사용 언어: {}”.format(name, age, main_lang)) profile(“유재석”) profile(“김태호”) >>> 이름: 유재석, 나이: 20, 주 사용 언어: Python >>> 이름: 김태호, 나이: 20, 주 사용 언어: Python 키워드값 매개변수에 값을 직접 지정해 출력할 수 있다. 가변인자 서로 다른 개수의 값을 넣어줄 때는 *로 시작되는 매개변수를 이용해 활용할 수 있다. 지역변수와 전역변수 * global 이란 키워드를 사용해 전..
-
[모두의 알고리즘] 탐색과 정렬(1)공부일기/알고리즘 2020. 8. 14. 00:48
탐색과 정렬 순차탐색 / O(n) 문제: 리스트에 찾는 값이 여러 개 있더라도 찾는 값의 모든 위치를 리스트로 돌려주는 탐색 알고리즘을 만들어라. 리스트에 없다면 빈 리스트인 [ ]를 돌려준다. 쉽다고 생각하고 들이댔으나 현재 result로 보이는 값을 처음에 전부 lst로 만들었더니 어떤 예를 들던 빈값이 나왔다. if문에서의 lst[i]값이 없어서 조건을 만족시키지 못하고, 그래서 그냥 빈 리스트의 값을 리턴값으로 줬던 것 같다. 문제: 학생 번호와 이름이 리스트로 주어졌을 때 학생 번호를 입력하면 학생 번호에 해당하는 이름을 순차 탐색으로 찾아 돌려주는 함수를 만들어라 개인적으로 맞추고 꽤 기분 좋았던 문제다. 3개의 정보를 받아서 만든 함수는 처음이라 맞나 싶었는데 결과가 정확하게 나오는 걸 보고..
-
[모두의 알고리즘] 재귀 호출공부일기/알고리즘 2020. 8. 13. 00:58
재귀호출 함수가 자기자신을 다시 호출하는 것으로 종료 조건이 있어야 정상 작동한다. 문제: 1부터 n까지의 합 구하기를 재귀 호출로 만들어라 문제2: 숫자 n개 중에서 최대값 찾기를 재귀 호출로 만들어라 최대공약수 구하기 유클리드 알고리즘: a와 b의 최대 공약수는 ‘b’와 'a를 b로 나눈 나머지’의 최대공약수와 같다. 어떤 수와 0의 최대공약수는 자기 자신 문제: 피보나치 수열이 0번부터 시작한다고 가정할 때 n번째 피보나치 수를 구하는 알고리즘을 재귀 호출을 이용해서 구현해라.
-
NAVER 부스트코스 CS50 - 4. 알고리즘공부일기/CS50 2020. 8. 12. 21:25
4. 알고리즘 4-1 검색 알고리즘 배열은 한 자료형의 여러 값들이 메모리상에 모여 있는 구조이다. 어떤 값이 배열 안에 속해 있는지를 찾아 보기 위해서는 배열이 정렬되어 있는지 여부에 따라 다음과 같은 방법을 사용할 수 있다. 선형검색: 배열의 인덱스를 처음부터 끝까지 하나씩 증가시키며 그 값이 속하는지 확인 이진검색: 배열이 정렬되어 있다면, 배열 중간 인덱스부터 시작해 찾고자 하는 값과 비교하며 그보다 작은 인덱스 또는 큰 인덱스로 이동을 반복 4-2 알고리즘 표기법 O( ): 알고리즘 실행 시간의 상한을 나타낸 것 Ω( ): 알고리즘 실행 시간의 하한을 나타낸 것 Θ( ) : 알고리즘 실행 시간의 평균 시간 좋은 알고리즘은 Big-O 값이 좋은 알고리즘. 4-3 선형검색 strcmp( ) : 문자..
-
[모두의 알고리즘] '알고리즘'이란?공부일기/알고리즘 2020. 8. 11. 18:40
알고리즘 알고리즘이란? ‘어떤 문제를 풀기 위한 절차나 방법’ 어떤 문제가 있을 때 주어진 입력 정보를 원하는 출력 정보로 만드는 일련의 과정을 구체적이고 명료하게적은 것 (컴퓨터는 주어진 명령에 따라 계산을 수행하는 기계이므로) 알고리즘 분석 알고리즘의 성능이나 특징을 분석하는 것 한 가지 문제를 여러가지 방식으로 풀 수 있는데, 이 때 알고리즘의 특징과 효율성(얼마나 빠르고, 편한지)을 알고 있다면 최적의 방법으로 문제를 해결할 수 있다.1부터 n까지의 합 구하기 알고리즘 기초 1부터 n까지의 합 구하기 / O(n^2) 문제: 1부터 n까지 연속한 숫자의 합 구하기 1. 1부터 n까지 하나씩 더해간다: 1 + 2 + 3 + … + n 2. 가우스가 사용했다는 방법: n(n+1) / 2 입력 크기와 계..
-
NAVER 부스트코스 CS50 - 3. 배열공부일기/CS50 2020. 8. 10. 21:05
3. 배열 3-1 컴파일링 전처리: #로 시작하는 헤더파일은 해당 파일의 실제코드로 대체 된다. 컴파일: 어셈블리 코드로 바뀌고(CPU가 실제 이해하는 언어에 가까워짐), 명렁어 실행. 어셈블링: 0과 1로 이루어진 머신코드를 만듦. 어셈블리 코드를 오브젝트 코드로 변경. 링킹: 위 단계에서 생성된 파일들을 연결. 3-2 디버깅 버그: 의도하지 않은 프로그램 내의 실수 논리적 오류 해결을 위해서 printf( ) 함수를 사용할 수 있다. 코드가 적힌 행 옆의 빨간 점을 클릭해 단계별로 실행할 수 있다. 3-3 코드의 디자인 코드 작성 만큼이나 중요한 건 코드가 정확한지 확인하는 테스트를 만드는 것이다. 특히 새로운 기능을 추가할 때 프로그램이 잘 작동하도록 작동여부를 확인해야 한다. 코드 작성시에는 나와..
-
파이썬 기본편 정리(1)공부일기/파이썬 2020. 8. 9. 22:45
숫자형 자료: 정수, 실수 출력 가능 사칙연산가능 문자열 자료: 문자열과 정수 혼합해 계산 가능 ex) print('ㅋ' * 4) 실행 시 >>> ㅋㅋㅋㅋ 출력 불리안 자료: 참과 거짓 출력 가능 not을 사용해 반대도 표현 가능 변수 값을 저장하는 공간 정수형, 불리안을 문자열로 출력하기 위해서는 str( )로 감싸줘야 한다. (자료형의 변경) ,가 들어갈시 띄어쓰기가 된다 주석 # 포함시 프로그램이 읽지 않음(실행하지 않음) 여러 문장을 주석처리 할 땐 문장 앞 뒤로 ‘ ‘ ‘ 를 붙인다 여러 문장 선택 후 "command + /" 를 누르게 되면 되면 선택문장 주석처리 가능 연산자 ** : 제곱 % :나머지 구하기 // : 몫 구하기 >= : 크거나 같다 (float형으로 출력된다.) 랜덤함수 (f..
-
NAVER 부스트코스 CS50 - 2. C언어공부일기/CS50 2020. 8. 5. 20:54
2. C언어 2-1 C기초 컴파일러: 직접 작성한 코드는 ‘소스코드’라고 불리는데 이를 2진수로 작성된 ‘머신코드’로 변환해야 컴퓨터가 이해할 수 있다. 이런 작업을 수행해주는 프로그램 2-2 문자열 C의 경우 변수가 저장하는 데이터의 종류를 아주 정확하게 명시해야 한다. 이 때, string, int, float과 같은 것들을 형식지정자라고 한다. 2-3 조건문과 루프 if, else, else if 뒤에는 세미콜론이 붙지 않는다. while( ) 은 ( ) 안의 조건에 해당 되는 동안 계속 반복한다. 2-4 자료형, 형식 지정자, 연산자 데이터 타입: bool: 불리언 표현, (예) True, False, 1, 0, yes, no char: 문자 하나 (예) 'a', 'Z', '?' string: 문..