CS50 코칭스터디2기
-
[CS50 코칭스터디] CS50 코칭스터디2기_6주차CS50 코칭스터디2기 2021. 2. 28. 14:15
6주차_자료구조 자료구조 자료구조, 데이터 구조란 컴퓨터에 자료를 효율적으로 저장하는 방식을 말하며 올바른 자료구조를 사용하는 것은 결국 메모리를 절약하고 수행시간을 절약하는 데 도움을 줄 수 있게 됩니다. 큐 큐는 메모리 구조에서 살펴봤듯이 값이 아래로 쌓이는 구조입니다. 값을 넣고 뺄 때 ‘선입 선출’ 또는 ‘FIFO’라는 방식을 따르게 됩니다. 가장 먼저 들어온 값이 가장 먼저 나가는 것이죠. 은행에서 줄을 설 때 가장 먼저 줄을 선 사람이 가장 먼저 업무를 처리하게 되는 것과 동일합니다. 배열이나 연결 리스트를 통해 구현 가능합니다. 스택 반면 스택은 역시 메모리 구조에서 살펴봤듯이 값이 위로 쌓이는 구조입니다. 따라서 값을 넣고 뺄 때 ‘후입 선출’ 또는 ‘LIFO’라는 방식을 따르게 됩니다. ..
-
[CS50 코칭스터디] CS50 코칭스터디2기_5주차CS50 코칭스터디2기 2021. 2. 19. 18:28
5주차_메모리와 포인터 메모리의 구조 프로그램이 실행되기 위해서는 먼저 프로그램이 메모리에 로드(load)되어야 합니다. 또한, 프로그램에서 사용되는 변수들을 저장할 메모리도 필요합니다. 따라서 컴퓨터의 운영체제는 프로그램의 실행을 위해 다양한 메모리 공간을 제공하고 있습니다. 프로그램이 운영체제로부터 할당받는 대표적인 메모리 공간은 다음과 같습니다. 코드(code) 영역 메모리의 코드(code) 영역은 실행할 프로그램의 코드가 저장되는 영역으로 텍스트(code) 영역이라고도 부릅니다. CPU는 코드 영역에 저장된 명령어를 하나씩 가져가서 처리하게 됩니다. 데이터(data) 영역 메모리의 데이터(data) 영역은 프로그램의 전역 변수와 정적(static) 변수가 저장되는 영역입니다. 데이터 영역은 프로그..
-
[CS50 코칭스터디] CS50 코칭스터디2기_4주차CS50 코칭스터디2기 2021. 2. 8. 00:30
4주차_알고리즘 알고리즘은 알고리즘이란 입력값을 출력 값의 형태로 바꾸기 위해 어떤 명령들이 수행되어야 하는지에 대한 규칙들의 순서적 나열입니다. 이러한 일련의 순서적 규칙들의 나열 방법에 따라 알고리즘의 종류가 달라집니다. 같은 출력 값이라도 알고리즘적 순서 나열에 따라 출력 값에 도달하는 시간은 서로 다를 수 있습니다. 알고리즘에서 가장 중요한 건 정확성과 효율성입니다. 정확성은 내가 구현한 알고리즘이 정답을 찾았는지입니다. 효율성은 작업을 완료하기까지 얼마나 시간과 노력을 덜 들일 수 있는지에 대한 척도입니다. 미션 : 숫자 애너그램 찾기 4주 차 팀미션은 알고리즘의 정확성과 효율성을 생각해보면서 코드를 구현해보았습니다. #include #include int main(void) { int a[5]..
-
[CS50 코칭스터디] CS50 코칭스터디2기_3주차CS50 코칭스터디2기 2021. 1. 29. 23:05
3주차_C언어팀미션 3주 차부터는 팀당 1개의 미션을 진행하였습니다. 그런데 난이도가 갑자기 급격하게 상승한 느낌이 있습니다 팀 미션은 학점을 계산해보자! 입니다. 네이버 부스트 코스에서 미션에 관한 자세한 내용은 공유를 금지한다고 합니다 ㅜㅜ.. 정답코드 #include #include #include #include void Determine_Grades(int input, int scores[], char *grades[]); int main(void) { int input = 0; int scores[9] = {95, 90, 85, 80, 75, 70, 65, 60, 0}; string grades[9] = {"A+", "A", "B+", "B", "C+", "C", "D+", "D", "F"};..
-
[CS50 코칭스터디] CS50 코칭스터디2기_2주차CS50 코칭스터디2기 2021. 1. 24. 14:51
2주차_C언어팀미션 문제 1 여러분은 기존 오프라인에서 리테일 사업으로 유명한 신선식품 업체에 입사한 개발자 입니다. 최근 디지털 트랜스포메이션 이슈에 따라 기존 오프라인으로 운영하던 리테일 사업을 온라인으로 전환하게 되었습니다. 여러분에게는 기존 오프라인에서 일어나던 일들을 온라인 쇼핑몰로 전환하는 임무를 진행하게 됩니다. 성공적으로 첫 임무를 완수하여 팀장님의 신임을 얻고 성취감도 느껴보세요! 이제 입사한지 얼마 되지 않았기 때문에 간단한 재고 관리 프로그램 개발의 일부를 맡게 되었습니다. 주문이 들어왔을 때 재고량을 적절하게 관리하지 못 하면 재고가 없는 물품의 주문이 추가로 일어날 수 있습니다. 그러면 고객의 불만이 발생할 수 있기 때문에 재고량을 관리가 필요합니다. 또 이렇게 관리한 데이터를 바..
-
[CS50 코칭스터디] 컴퓨터는 아날로그 신호인 소리를 어떻게 디지털로 저장하는 걸까요?CS50 코칭스터디2기 2021. 1. 14. 20:08
1. 컴퓨터는 아날로그 신호인 소리를 어떻게 디지털로 저장하는 걸까요? 컴퓨터에 아날로그 신호인 소리를 저장하려면 일단 소리 대해서 알아야 합니다 소리란 음 또는 '음파'는 공기나 물 같은 매질의 진동을 통해 전달되는 종파입니다. 쉽게 말해서 진동이라는 뜻입니다.! 진동의 단위(herz,hz) 1초에 몇 번이나 떨렸는지 표현하기위해 herz, hz라는 단위를 사용합니다 1hz는 1초에 10번 진동했다는 것을 의미합니다. 또한 진동은 자연계에서 발생한 것이기 때문에 아날로그(Analog)의 형태로 나타납니다. 소리는 진동이고 아날로그 신호이다 아날로그는 신호나 자료를 연속적인 물리량으로 나타낸것입니다. 연속성의 대표성은 바로 수입니다 1과 2사이에는 1, 1.1, 1.255, 1,36666, …… 1.88..
-
[CS50 코칭스터디] CS50 코칭스터디2기_1주차CS50 코칭스터디2기 2021. 1. 12. 23:36
CS50 코칭 스터디 2기 친구가 네이버 부스트 코스 CS50 강의를 추천해서 수강신청을 할 무렵에 CS50 코칭 스터디 2기를 모집을 하고 있었다. 그냥 공부하는 것보다는 함께 공부하는 게 효율적이고 코치님들이 1:1 밀착관리, CS50 없던 라이브 강의도 진행한다고 해서 신청을 했는데 선발돼버렸다.!! 일단 선발됐으니 6주간 열심히 달려야겠다. ㅋㅋ 매주마다 팀별 미션, 과제, 퀴즈를 수행해야 하고 이러한 것들이 비전공자인 나에게 개발자가 되는 좋은 발판이 되기를 생각하며 앞으로 블로그에 6주간 공부한 내용을 여기에 작성할 예정이다. 1주 차_컴퓨팅 사고 요약 컴퓨터 과학 컴퓨터 과학은 문제 해결에 대한 학문입니다. 문제 해결은 입력(input)을 전달받아 출력(output)을 만들어내는 과정입니다...