전체 글

전체 글

    [CS50X] 2024 Week3 Algorithms

    [CS50X] 2024 Week3 Algorithms

    알고리즘을 배울 때면 항상 중학생 때 들었던 가우스 일화가 생각난다. 1 + 2 + 3 + ... + 99 + 100 = ??? 이 계산을 해보라는 것이였는데 자연스럽게 1 + 2, 3 + 3 을 하면서 계산했던 기억이 난다. 선생님은 10초 만에 시간이 끝났다며 계산을 한 사람이 있는지 물었는데 아무도 없었다. 아마 계산기를 써도 그렇게 빠르게 하긴 어려울 것이다. 근데 가우스는 10살 무렵에 이 계산을 10초 안에 했다고 한다. 그의 비법은 거꾸로 뒤집어 2번 더하는 것이였다. 1 + 2 + 3 + ... + 99 + 100 100 + 99 + 97 + ... + 2 + 1 = 101 + 101 + ... + 101 --> 101 * 100 10100 이라는 수가 나오는데 2번 더했으니 2로 나누면 ..

    [CS50X] 2024 Week2 Arrays Problem Set 2 (Scrabble, Readability, Substitution)

    Scrabble 문제 링크 https://cs50.harvard.edu/x/2024/psets/2/scrabble/ Scrabble - CS50x 2024 Harvard University's introduction to the intellectual enterprises of computer science and the art of programming. cs50.harvard.edu 의사코드 작성 /* 1. 플레이어1 플레이어2 문자열 받기 2. 각각 점수 계산하기 3. 점수 비교후 알맞은 내용 출력하기 */ 실제 코드 작성 #include #include #include #include int scoretable[] = {1, 3, 3, 2, 1, 4, 2, 4, 1, 8, 5, 1, 3, 1, 1..

    [CS50X] 2024 Week2 Arrays

    [CS50X] 2024 Week2 Arrays

    Compiling make 로 간단히 컴파일 했었는데 사실 컴파일링은 상당히 귀찮은 작업이다. make 명령어는 clang -o 파일이름 파일이름.c [-라이브러리이름] 라는 긴 명령어를 대신 해준다. make 명령어 뒤에서는 clang 이 실행되고 있었던 것이다. #include #include int main(void) { string answer = get_string("what's your name?") printf("hello, %s", answer); } 이 프로그램의 이름을 hello 라고 했을 때 컴파일 하려면 clang -o hello hello.c -lcs50 라고 명령어를 입력해야한다. stdio 는 따로 입력 안해도 된다. 컴파일러는 4단계의 동작을 하고 사실 컴파일링은 그 중 한 ..

    [CS50X] 2024 Week1 C Problem Set 1 (Mario, Credit)

    Mario-more problem link 문제 링크 https://cs50.harvard.edu/x/2024/psets/1/mario/more/ Mario - CS50x 2024 Harvard University's introduction to the intellectual enterprises of computer science and the art of programming. cs50.harvard.edu 의사코드 작성 /* 1. 사용자에게 숫자 받기 2. 피라미드 출력 하기 2-1. 앞 공백 출력하기 2-2. 앞 # 출력하기 2-3. 중간 공백 출력하기 2-4. 뒤 # 출력하기 2-5. 줄바꿈 */ 실제 코드 구현 #include #include int main(void) { int n; do {..

    [CS50X] 2024 Week1 C

    [CS50X] 2024 Week1 C

    Source Code 소스코드는 프로그래밍 언어 (C, Python, Java ..) 로 쓰여진 코드이다. "Hello Wolrd" 를 출력하는 간단한 프로그램을 C로 만들어보면 #include int main(void) { printf("Hello World\n"); } 이런식으로 쓸 수 있다. 기본적으로 영어이고 인간이 읽고 쓰기 좋게 만들어졌다. 하지만 이 자체로는 컴퓨터가 이해할 수 없다. 0강에서 다뤘듯이 컴퓨터는 Machine Code (0과 1로만 구성된 이진법)를 쓰기 때문이다. Complier 따라서 Source Code 를 Machine Code 로 바꿔주는 작업을 해야하는데 그 역할을 하는 것이 Compiler 이다. 컴파일러를 사용하는 방법은 언어마다 다르지만 C에서 컴파일하고 실행..

    [CS50X] 2024 Week0 Scratch

    [CS50X] 2024 Week0 Scratch

    Harvard CS50X cs에 대해 제대로된 수업을 받아보지 않고 지난 2년간 웹사이트와 게임들을 만들면서 항상 새로운 툴들을 익히는 것에 급급했고 깊은 이해 없이 빠른 제작에 집중했었다. 이런 시간이 길어지면서 컴퓨터의 기본과 cs 지식에 대한 갈증이 있었고 하버드에서 진행하는 CS50이라는 코스를 알게되었다. https://cs50.harvard.edu/x/2024/ 개인적으로 정말 좋은 프로그램이라고 생각하고 만약 누군가 컴퓨터와 관련된 분야를 새롭게 익히고 싶다한다면 자신 있게 이 강의를 추천할 것 같다. 앞으로의 포스팅은 해당 주차의 CS50 강의를 정리/요약하고 ProblemSet 을 어떻게 해결했는지 공유할 예정이다. Computer Science CS 즉 컴퓨터 사이언스란 Computat..