기간 : 11.07.~11.11.(총 5일)
이번 주 내용 :
1.팀배정
2번째로 팀이 만들어졌다. 이번에는 팀 프로젝트를 하기 전 공부를 하는 기간이 있기 때문에 낮선 팀원 분들과 조금 친해진 상태로 프로젝트를 들어갈 수 있겠다는 생각이 들었다.
2.JAVA 실무 기초
기초적인 JAVA를 배우게 되었다. 인텔리제이로 JAVA를 실행하여 처음으로 JAVA를 실행해보았다(국룰인"Hello World!" 출력). 수업 목표를 이런 것을 배웠고 나중에 필요하면 찾아서 볼 수 있는 정도로만 잡았다.
- 변수와 상수 - 변수 : 데이터를 저장하기 위한 메모리 공간의 이름, 변환 가능 / 상수 : 초기값을 끝까지 가져감
- 자료형 - Primitive Type(기본 자료형) : 숫자, 문자, 논리, 바이트 / Reference Type(참조 자료형) : 기본 자료형이 아닌 모든 자료형, 자바의 인스턴스를 가리킬 수 있는 자료형
- 연산자 : 연산자는 여러 변수들간의 계산 및 비교를 위하여 사용- 산술, 대입, 논리, 관계, 비트
3.파이썬 문법기초
파이썬의 기초를 배우고 나서 들으니 훨씬 퀴즈를 푸는데 수월했다.
기초과정
- 변수 선언과 자료형 - 변수 선언 : 번수이름 = 값 / 자료형 : 숫자형(사칙연산 가능), Boolen형 : '비교연산자'의 결과를 나타냄(True, False), 논리연산자 이용 가능
- 문자열 : '글'을 데이터로, ""를 사용, 문자열의 길이는 len() 함수 사용, 인덱싱&슬라이싱 - f[], 몇 번째인지 '인덱스'를 넣어 불러서 인덱싱, 문자열의 일부를 잘라낼 때는 슬라이싱
- 리스트&딕셔너리 : 리스트 - 순서가 있는 자료형 모임, 인덱싱&슬라이싱 사용 가능 / 딕셔너리 - 키(key)와 밸류(value)의 쌍으로 이루어진 자료의 모임, 인덱싱 사용X, 값 업데이트 가능
- 조건문 : if문 / else문 / elif문
- 반복문 : for문 : 자료들을 돌면서 코드 수행
- 함수 : 반복적으로 사용하는 코드들에 이름을 붙여놓은 것,
심화과정
- 튜플&집합 : 튜플-불변인 자료형 / 집합 - 중복이 제거됨
- f-string : 좀 도 직관적인 문자열을 만들 수 있게 해줌
- try - except 문 : 에러가 있어도 에러를 제외하고 실행하게 만들어줌
- map, filter 식 : map - 리스트의 모든 원소를 조작 / filter - 리스트의 모든 원소 중 특별한 것만 뽑기
- class 개념
4.알고리즘
생각하는 힘을 길러 코딩할 때 도움을 받자.
1주차: 시간/공간 복잡도, 알고리즘 구현력 기르기
- 시간 복잡도 : 입력값과 문제를 해결하는 데 걸리는 시간과의 상관관계, O(N)
- 공간 복잡도 : 입력값과 문제를 해결하는 데 걸리는 공간과의 상관관계
2주차: 어레이, 링크드 리스트, 이분탐색, 재귀
- array : 크기가 정해진 데이터의 공간, 원소의 순서는 0부터 시작하고 이를 인덱스라고 한다, 원소를 중간에 삽입/삭제 하려면 모든 원소를 다 옮겨야 함(매우 비효율적),
- linked_list : 크기가 정해지지 않은 데이터의 공간, 원소를 중간에 삽입/삭제 하기 위해서는 앞 뒤의 포인터만 변경
- class : 분류. 집합. 같은 속성과 기능을 가진 객체를 총칭하는 개념
- 이분 탐색 : 원하는 값을 찾기 위해 범위를 절반으로 나누워 좁혀가며 찾는 방식
- 재귀 : 어떠한 것을 정의할 때 자기 자신을 참조하는 것/ 재귀함수 : 자기 자신을 호출하는 함수, 탈출 조건을 만들어 주어야 한다(안그러면 무한루프), 간결하고 효율성 있는 코드를 작성할 수 있다
3주차: 정렬, 스택, 큐, 해쉬
- 정렬 : 데이터를 순서대로 나열하는 방법, 버블/ 삽입/ 병합
- 스택, 큐 : 스택과 큐는 들어가고 나오는 곳이 정해져있는 자료구조, 스택 : last in first out, 한쪽 끝으로만 자료 inout 가능 / 큐 : first in first out, 한쪽 끝으로 in 반대쪽으로 out
- 해쉬 : 문자열을 고정된 길이의 데이터로 만들 수 있다, 값이 같으면 충돌 발생(데이터를 덮어 씌움), 해쉬 테이블 / 해쉬 함수
5.cs강의- cpu
cpu는 컴활 공부를 할 때 잠깐 스쳐가듯 공부했던 내용이다. cpu에 대한 간단한 정의와 관련 기본 상식들을 듣는 시간이었다, 기본적으로 코딩을 하면서 cpu에 대해 알고 가는 것이 훨씬 좋다고 하시는데 아직은 나랑은 상관 없는 이야기같다..
6.어려웠던 점
새로운 개념들을 한번에 들으려고 하니 진도를 따라잡는 것도 너무 힘든 한주였다. 알고리즘 강의에서 사용하는 코딩어들이 적응이 안되서 따라잡기 함들었다.
7.이번 주 키워드 : 시간복잡도, 링크드리스트, 정렬, 스택 큐
딱 이 내용들만 얻어가려고 했다.
8.느낀점
강의를 애초에 두번 듣겠다는 생각으로 진도를 쭉 빼야겠다고 생각했다. 진도를 어느정도 빼야 나중에 프로젝트를 들어가서 좀 수월할 것 같은데 지금은 보고 쳐도 에러가 나서 다른 대원분들께 물어보고나서야 찾아낼 수 있었다. 그래서 그냥 처음엔 듣고 대충 따라해보고 두번째에 더 집중해서 들으려고 방향을 잡았다. 알고리즘 수업을 들으면서 '이걸 이렇게 해서 이렇게 만들면 되지 않을까'는 머릿속에 입력이 되는데 막상 코딩을 하려고 화면을 보면 아예 처음부터 어떻게 시작해야 될지가 너무 막막했다. 익숙하지 않아서 그렇다고는 하지만 역시 걱정이 된다. 이러다가 혼자서는 코딩을 못하면 어카나..
'스파르타 부트캠프(spring)' 카테고리의 다른 글
[내일배움캠프_spring] 3주차_JAVA 문법(~1-20강) (0) | 2022.11.15 |
---|---|
[내일배움캠프_spring] 3주차_JAVA 문법(~1-14강) (0) | 2022.11.14 |
[내일배움캠프_spring] 2-1주차_알고리즘(3-9강) (0) | 2022.11.11 |
[내일배움캠프_spring] 2-1주차_알고리즘(~3-1) (1) | 2022.11.11 |
[내일배움캠프_spring] 2-1주차_파이썬 문법기초(~1-19강)/알고리즘 (0) | 2022.11.10 |