⚠️ 이 글은 작성자의 주관적인 생각이 100% 포함된 뻘글입니다. 오랜만에 뻘글 카테고리에 글을 써보게 되었다. 수능을 준비하던 고등학교 3학년 때 어떤 비문학 지문을 읽었는데 그때 느꼈던 감정이 아직까지도 생생하게 와닿는다. 수많은 비문학 글 중 하나라서 시간 내어 찾아보지는 않았지만, 기억나기로는 다음과 같다. 세상의 모든 것들은 이미 완성된 세상으로부터 가져오는 것이다. 파리에 있는 에펠탑도 사실은 완성된 세상으로부터 가져온 것이고, 우리가 흔히 즐겨하는 리그오브레전드 게임이나 오버워치도 사실은 완성된 세상에서 가져오는 것이다. 최근 생성형 AI가 생겨나며 ChatGPT나 Copilot을 사용하며 개발을 하고 있다. 근데 신기하게도 내가 '이 기능 만들어야지'라는 생각과 함께 키 하나를 누르면 너..
분류 전체보기
백준 9251번: LCS 알고리즘 분류: 문자열, 다이나믹 프로그래밍(DP) 파이썬(Python) 풀이 링크: https://www.acmicpc.net/problem/9251 LCS(Longest Common Subsequence)란 최장 공통 부분 수열이라는 의미로 두 문자열 사이에서 모든 부분 수열이 되는 수열 중 가장 긴 문자열을 찾아내는 것이다. 문제 LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다. 입력 첫째 줄과 둘째 줄에 두 문자열이 주어진다. 문자열은 알파벳 대문자로만 이루어져 있으며, 최대 100..
SELECT는 데이터를 조회할 때 사용했다면 이번에는 데이터를 추가하거나, 수정 또는 삭제하는 명령어이다. INSERT INTO 데이터를 추가할 때 사용하는 명령어이다. # Syntax INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...); # 실제 사용 INSERT INTO Students(StudentName, Age, Address) VALUES ('김길동', 25, 'Seoul'); # 실제 사용(여러 데이터를 추가하는 경우) INSERT INTO Students(StudentName, Age, Address) VALUES ('김길동', 25, 'Seoul'), ('박김은', 21, 'Busan'), ('이나무', ..
ORDER BY 조회를 할 때 어떤 Column을 기준으로 오름차순으로 조회할지, 내림차순으로 조회할지 설정할 수 있다. # Syntax SELECT column1, column2, ... FROM table_name ORDER BY column1, column2, ... ASC | DESC; # 실제 사용 SELECT StudentID, StudentName, Age, Address FROM Students ORDER BY Age ASC; 그러면 다음과 같이 표 형태로 데이터를 확인할 수 있다. StudentID StudentName Age Address 487 정OO 20 Seoul 592 김OO 20 Gyeongju 195 박OO 20 Busan 343 경OO 21 Jeju ... Age(나이)를 ..
SELECT 데이터베이스로부터 데이터를 조회하는 기능으로 다음과 같이 사용하면 된다. # Syntax SELECT column1, column2, ... FROM table_name; # 실제 사용 SELECT StudentID, StudentName, Age, Address FROM Students; 그러면 다음과 같이 표 형태로 데이터를 확인할 수 있다. StudentID StudentName Age Address 1 김OO 23 Seoul 2 이OO 24 Daegu 3 박OO 23 Incheon 4 안OO 24 Jeju ... 위와 같이 StudentID, StudentName...처럼 column명을 따로 지정하지 않고 모든 column을 보고 싶으면 SELECT * FROM Students;라고..
SQL이란? SQL(Structured Query Language)은 관계형 데이터베이스(RDBMS)에 정보를 저장하거나 검색, 수정, 삭제 등을 하기 위한 프로그래밍 언어이다. 관계형 데이터베이스(RDBMS)란? RDBMS(Relational Database Management System)은 관계형 데이터베이스 관리 시스템으로, 관계형 데이터베이스를 생성, 읽기, 수정, 삭제할 수 있는 기능을 제공하는 소프트웨어 시스템이다. 데이터는 2차원 테이블(행과 열)로 구성되었고, 이 테이블 간의 관계를 통해 데이터를 효율적으로 구성하고 관리한다. Query란? Query는 데이터베이스에게 하는 질문이나 요청으로 생각할 수 있다. 이를 통해 데이터 조작 작업을 수행할 수 있다. Query 예시로 SELECT,..
1) navigator.clipboard.writeText() navigator.clipboard.writeText라는 method를 사용할 것이다. 사용 방법은 다음과 같다. var text = "저장하고 싶은 문자열"; navigator.clipboard.writeText(text) .then(() => console.log("클립보드에 성공적으로 복사되었습니다.")) .catch(error => console.error("클립보드에 복사하는 데 실패했습니다: ", error)); 이 기능은 HTTPS나 Localhost에서만 사용이 가능하다고 하며 자세한 정보는 공식 문서를 확인하면 좋다. 링크 : https://developer.mozilla.org/en-US/docs/Web/API/Clipboa..
🟥 문제 발생 이전 포스트에서는 문제의 Level값으로 랜덤으로 갖고 오게 만들었다. 이전 포스트를 보고 싶다면? 👉 https://dodolist.tistory.com/57 [백준] 자동으로 문제 선정해서 가져오기 - 1 🟥 왜 만들었어? 알고리즘 스터디를 진행하면서 매일마다 문제를 정해주는 게 꽤 번거로운 일이 될 것 같아서 이 과정을 자동화하고자 하였다. 🟧 어떻게 만들려고 해? 1. 문제 사이트에서 Level dodolist.tistory.com 근데 문제가 발생해 버렸다... 🤯 ⚠️ 문제 1. 설정해 둔 Level값이랑 한국어 문제면 가져오게 했더니, 남들도 많이 푼 문제보다 500명도 안 푼 문제들이 많이 선정됨 → 조건문 하나만 추가하면 해결되긴 한다. 2. 매일매일 다른 알고리즘을 풀다 ..
🟥 왜 만들었어? 알고리즘 스터디를 진행하면서 매일마다 문제를 정해주는 게 꽤 번거로운 일이 될 것 같아서 이 과정을 자동화하고자 하였다. 🟧 어떻게 만들려고 해? 1. 문제 사이트에서 Level별로 정렬을 하고 2. 랜덤으로 문제를 선정한뒤에 3. 문제가 한국어인지 확인한다. 3-1. 만약 한국어가 아니면 2번으로 돌아간다. 🟨 Level별로 정렬은 어떻게 했어? 먼저 solved.ac에서 다음과 같은 Level에 따른 문제를 보여주는 사이트가 있었다. https://solved.ac/problems/level/1?page=1 여기서 level/{level_value}?page={page_number}가 중요한데, level_value는 0부터 30까지 Unrated, Bronze V, Bronze I..
오늘은 두번째 프로그래밍의 꽃인 반복문을 알아볼 것이다! 컴퓨터는 반복적인 작업을 잘한다. 그런만큼, 반복 작업을 시키기 위해선 반복문을 알아야만 한다. 프로그래밍 반복문은 크게 while과 for문이 있다. while Loop while 반복문은 조건문을 만족하면 계속해서 반복된다. 그 말은, 조건문을 계속 만족한다면 계속 반복하느라 프로그램은 종료되지 않을 것이다. 이걸 무한 루프(Infinite Loop)라고 부르기도 한다. while 문은 다음과 같이 작성할 수 있다. var randomNumber: Int = Int.random(in: 1...100) var guessNumber: Int = Int.random(in: 1...100) while randomNumber != guessNumber ..