Programming
-
백준 1406번 에디터: C언어 풀이Programming/PS 2023. 9. 11. 04:29
백준 1406번 에디터 문제의 C 언어 풀이입니다.연결리스트를 사용한 구현 방식을 소개합니다.전략연결 리스트를 이용한 구현스택을 이용한 풀이도 있는 것 같지만 아직 안배웠으니 패스.정직하게 연결 리스트로 구현했다. "명령어가 수행되기 전 커서는 문장의 맨 뒤에 위치하고 있다고 한다"이 조건을 위해 끝에 NUL(\0) 문자를 넣어 두었다.조건 처리가 훨씬 편리해진다.코드#include #include enum operations{ LEFT = 'L', RIGHT = 'D', DELETE = 'B', PREPEND = 'P'};struct node{ char letter; struct node *next; struct node *prev;};void prepend(str..
-
백준 3273번 두 수의 합: C언어 풀이Programming/PS 2023. 9. 11. 03:55
백준 3273번 두 수의 합 문제의 C 언어 풀이 해설입니다.배열을 이용해 숫자의 등장 여부를 체크하는 방식으로, 시간복잡도 O(n)으로 두 수의 합이 특정 값이 되는 쌍의 개수를 구하는 방법을 설명합니다.전략원소의 등장 여부를 기록하는 Lookup 배열주어진 합이 10, 수열이 2, 6, 4 순서라고 해보자.첫번째 원소는 2다. Lookup 배열에서 10 - 2, 8을 찾아본다. 없다.2를 Lookup 배열에 등록한다.두번째 원소는 6이다. Lookup 배열에서 10 - 6, 4를 찾아본다. 있다.6을 Lookup 배열에 등록한다.세번째 원소는 4다. Lookup 배열에서 10 - 4, 6을 찾아본다. 있다.조건을 만족하는 쌍을 발견했으므로 카운트를 더해준다.찾은 경우 굳이 Lookup 배열에 등록할 ..
-
하버드 CS50 프로그래밍 입문 강의 수강 가이드 및 수강 후기Programming/CS50 2023. 9. 4. 12:20
하버드 CS50 강의 수강 방법과 상세한 후기를 다룹니다.edx, havard CS50 공식 사이트, 네이버 부스트코스의 CS50 모두를 위한 컴퓨터 과학 강좌 등 여러 수강 방법을 소개합니다.수강 환경에 대한 설명과 윈도우 유저를 위한 여러가지 팁을 제공합니다.입문자부터 경험자까지 CS50 수강을 고민하시는 분들을 위한 가이드를 제공하고자 합니다.수강 방법edx에서강의 수강 신청이 가능하다. Linkedin 같은 데 올릴 수료증/인증서가 필요하다면 수강 등록을 하고 수강하자.수강 신청을 하지 않아도 된다. 나는 마음대로 듣고 싶어서 일부러 하지 않았다.하버드 CS50 공식 사이트에서 강의 보기, 강의 노트 열람, 필요한 과제와 자료 확인이 가능하다. 사이트가 정말 잘 되어있다. 관심 갖고 탐색할 가치가..
-
CS50 Week8: Lab8, TriviaProgramming/CS50 2023. 7. 26. 20:33
하버드 CS50 강의 8주차 Lab 과제 Trivia 의 풀이를 다룹니다.가벼운 상식 퀴즈를 내는 웹 사이트를 만드는 과제입니다.HTML, CSS, JavaScript를 사용하여 정적 웹 페이지를 만들어야 합니다.퀴즈를 내고 정답 여부에 따라 피드백을 남기는 기능을 구현해야 합니다.Task Requirements코드 템플릿이 주어져있다. Trivia! Part 1: Multiple Choice Part 2: Free Response ..
-
CS50 Week7: Problem Set, MoviesProgramming/CS50 2023. 7. 23. 20:00
하버드 CS50 강의 7주차 Problem Set 과제 Movies 의 풀이를 다룹니다.IMDb 데이터베이스를 기반으로 한 간단한 SQL 연습 문제 입니다.JOIN을 쓰는 방법과 IN 서브쿼리를 쓰는 방법 등 다양한 방법으로 풀고 비교해보았습니다.Schema테이블 구성은 아래와 같다.CREATE TABLE movies ( id INTEGER, title TEXT NOT NULL, year NUMERIC, PRIMARY KEY(id) );CREATE TABLE stars ( movie_id INTEGER NOT NULL..
-
CS50 Week7: Lab7, SongsProgramming/CS50 2023. 7. 22. 22:12
하버드 CS50 강의 7주차 Lab 과제 Songs 의 풀이를 다룹니다.SQL을 사용하여 데이터베이스를 확인하는 간단한 과제입니다.풀이와 함께 SQL에서 다른 테이블 값을 참조해야 할 때 쓸 수 있는 두 가지 방법, JOIN 과 IN 서브쿼리를 써서 비교해보았습니다.Code1.sqlSELECT name FROM songs;2.sqlSELECT name FROM songsORDER BY tempo;3.sqlSELECT name FROM songsORDER BY duration_ms DESCLIMIT 5;4.sqlSELECT name FROM songsWHERE danceability >= 0.75AND energy >= 0.75AND valence >= 0.75;5.sqlSELECT AVG(energy) ..
-
CS50 Week6: Problem Set, DNAProgramming/CS50 2023. 7. 21. 15:07
하버드 CS50 강의 6주차 Problem Set 과제 DNA 의 풀이를 다룹니다.DNA 검식 결과를 바탕으로 사람을 찾아내는 과제입니다.csv 데이터를 다루기 위해 파이썬의 판다스 라이브러리를 사용한 풀이입니다.Task$ python dna.py databases/large.csv sequences/5.txtLavenderCode예전에 학교 수업에서 판다스를 써본 적이 있어서 이번에도 써 봤다. import sysimport pandas as pddef main(): # TODO: Check for command-line usage if len(sys.argv) != 3: print("Usage python dna.py data.csv sequence.txt") s..