본문 바로가기

반응형

전체 글

(1068)
[2026 1학기 알고리즘 스터디] 김광철 #5주차 5주차 DP 알고리즘 스터디 블로깅 시작하겠습니다.이번 주차에는 동적 계획법, 즉 DP 문제들을 중심으로 풀었습니다.처음에는 점화식을 세우는 것이 어렵게 느껴졌지만, 문제들을 풀다 보니 이전에 구한 값을 이용해서 다음 값을 구한다는 공통점이 있다는 것을 알 수 있었습니다.1. 피보나치 수#include #include using namespace std;int solution(int n) { vector fib(n + 1); fib[0] = 0; fib[1] = 1; for (int i = 2; i 첫 번째 문제입니다.이 문제는 기본적인 피보나치 수를 구하고 나머지를 구하는 문제였습니다.피보나치 수는 앞의 두 수를 더해서 다음 수를 만드는 방식이라 어렵지 않았습니다.fib[i] = ..
[2026 1학기 알고리즘 스터디] 이상현 #3, 4주차 3주차 DFS/BFS최단/최소 → BFS, 모든 경우/경로 → DFS1. 타겟 넘버인덱스마다 +, - 분기하는 DFS.def solution(numbers, target): answer = 0 def dfs(i, total): nonlocal answer if i == len(numbers): if total == target: answer += 1 return dfs(i+1, total + numbers[i]) dfs(i+1, total - numbers[i]) dfs(0, 0) return answer끝까지 가서 비교 (중간에 같다고 카운트 X)부분집합 합 DP로도 풀림: 합 S일 때 (S+..
[2026 1학기 알고리즘 스터디] 박민규 #3주차 언어: C++ DFS와 BFS, 백트래킹에 대한 지식이 부족해서 GPT와 링크자료를 통해서 학습하 문제를 풀었습니다. 1. 타겟 넘버#include #include using namespace std;int answer = 0;void dfs(vector& numbers, int target, int idx, int sum) { if (idx == numbers.size()) { if (sum == target) { answer++; } return; } dfs(numbers, target, idx + 1, sum + numbers[idx]); dfs(numbers, target, idx + 1, sum - numbers[i..
[2026 1학기 알고리즘 스터디] 박승환 #4주차 이번 알고리즘은 자료구조+그리디다. 자료구조는 수업에서 배웠던 리스트 부터 시작해서 스택, 큐 등등 모든 것을 포함해서 말하는것이고 이번에 새로 알게된 것은 그리디(Greedy) 알고리즘으로 "탐욕 알고리즘"이라고도 한다. 그리디 알고리즘(Greedy Algorithm): "선택의 순간마다 당장 눈앞에 보이는 최적의 상황만을 쫒아 최종적인 해답에 도달하는 방법" 일정 공식은 없고 창의력을 요구하는 알고리즘이다. 즉 문제를 풀기 위해 최소한의 아이디어를 내야한다. 1. 올바를 괄호 #include using namespace std;bool solution(string s){ int ok = 0; for(int i = 0; i 이 문제는 간단한 문제로 괄호의 짝이 맞는지 확인 하는 문제이다..
[2026 1학기 알고리즘 스터디] 임동민 #3주차 안녕하세요! 알고리즘 스터디 3주차 DFS/BFS 시작하겠습니다! 1번 타겟넘버#include #include using namespace std;int answer = 0;void DFS(vector& numbers, int target, int index, int sum) { if (index == numbers.size()) { if (sum == target) { answer++; } return; } DFS(numbers, target, index + 1, sum + numbers[index]); DFS(numbers, target, index + 1, sum - numbers[index]);}int solution(..
[2026 1학기 알고리즘 스터디] 박승환 #3주차 이번 알고리즘은 DFS 와 BFS이다.DFS(깊이 우선 탐색)은 모든 경우의 수를 구하는 문제에 적절하다.BFS(너비 우선 탐색)은 최단 경로 같은 문제에 적합하다. 1. 타겟 넘버#include #include using namespace std;int answer = 0;void dfs(vector& numbers, int target, int index, int sum) { if(index == numbers.size()) { if(sum == target) { answer++; } return; } dfs(numbers, target, index + 1, sum + numbers[index]); dfs(numbers..
[2026 1학기 알고리즘 스터디] 고윤정 #4주차 4주차 알고리즘 스터디 시작합니당 올바른 괄호def solution(s): answer = True cnt = 0 for c in s: if c == '(': cnt += 1 else: cnt -= 1 if cnt - cnt )가 먼저 나오는 경우 판단- 마지막에 cnt != 0 확인 -> (가 안 닫힌 경우 판단- 카운터가 음수가 되면 즉시 False, 끝까지 순회 후 카운터가 0이면 True- 스택으로도 풀 수 있지만 괄호 종류가 1가지라 카운터로 풀이 기능개발import mathdef solution(progresses, speeds): answer = [] days = [math.c..
[2026 1학기 알고리즘 스터디] 고윤정 #3주차 안녕하세용 알고리즘 스터디 3주차 시작합니닷 타겟 넘버def solution(numbers, target): answer = 0 def dfs(i, s): # i: 현재 인덱스, s: 현재까지의 합 nonlocal answer if i == len(numbers): # 모든 숫자 다 사용했으면 if s == target: # 합이 target이면 카운트 answer += 1 return dfs(i + 1, s + numbers[i]) dfs(i + 1, s - numbers[i]) dfs(0, 0) ..
[2026 1학기 알고리즘 스터디] 이상래 #3,4주차 1. 타겟넘버class Solution { int answer = 0; public int solution(int[] numbers, int target) { dfs(numbers, target, 0, 0); return answer; } void dfs(int[] numbers, int target, int depth, int sum) { if (depth == numbers.length) { if (sum == target) answer++; return; } dfs(numbers, target, depth + 1, sum + numbers[depth]); dfs(n..
[2026 1학기 스프링부트 스터디] 박승환 # 2주차 이제는 회원을 관리하는걸 배워보자! 이제 실무느낌의 활동이다 일반적인 웹 애플리케이션 계층 구조이다. 클래스 의존관계 회원 Repository 코드 package hello.hello_spring.domain;public class Member { private Long id; // 시스템이 저장하는 id private String name; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } ..
[2026 1학기 알고리즘 스터디] 남윤찬 #4주차 2주차 - 자료구조, 그리디 올바른 괄호import java.util.*;class Solution { boolean solution(String s) { Queue q = new LinkedList(); for (int i = 0; i 여는 괄호 '('가 오면 큐에 쌓고, 닫는 괄호 ')'가 왔을 때 큐가 비어있다면 괄호가 올바르지 않으므로 false이다. 전체 순회를 한 후에도 큐에 여는 괄호가 남아있다면 마저 닫히지 않았으므로 옳지 않은 괄호이다. 기능 개발import java.util.*;class Solution { public int[] solution(int[] progresses, int[] speeds) { Li..
[2026 1학기 알고리즘 스터디] 김광철 #4주차 4주차 스택, 큐, 그리디 블로깅 시작하겠습니다.1. 올바른 괄호def solution(s): count = 0 for ch in s: if ch == '(': count += 1 else: count -= 1 if count 첫 번째 문제입니다.처음에는 스택으로 풀어야 하나 생각했는데, 이 문제는 단순히 괄호의 개수 균형만 확인하면 되는 문제였습니다.(를 만나면 +1, )를 만나면 -1 하면서 진행했습니다. if ch == '(': count += 1else: count -= 1 중요한 점은 중간에 count가 음수가 되면 안 된다는 것입니다.예를 들어 ")()(" 같은 경우..
[2026 1학기 React.js 스터디] 한시우 #3주차 00. 들어가는 말안녕하세요.드디어 본격적으로 react 에 대해 알아볼 시간입니다.그 전에 프론트엔드에 자세히 알아보기 위해 영상을 하나 준비했습니다.https://youtu.be/Kl5EcYd3G2E?si=YhcloXEFJWEp2qcA영상 정리부터 시작해볼게요 웹 3대 기술: HTML, URL, HTTPHTML: 문서 작성 규칙 (Hyper Text Markup Language)URL: 문서의 주소 (Uniform Resource Locator)HTTP: 문서를 주고받는 방법 (HyperText Transfer Protocol)CSS (Cascading Style Sheet)HTML 파일을 꾸미고 싶었음그래서 HTML에 inine으로 style을 넣었음그러다가 유지보수가 너무 힘들어지고 HTML의 기..
[2026 1학기 스프링부트 스터디] 최종은 #3주차 1. 스프링 빈과 의존관계 저번주차에 만든 결과물에 화면을 붙이려면 컨트롤러와 뷰 템플릿이 필요함그러기 위해서는 멤버 컨트롤러를 만들어야함이 멤버 컨트롤러는 멤버 서비스를 통해서 데이터를 제어해야함 -> 이것을 "의존관계"가 있다고 표현함 1. 멤버 컨트롤러 만들기 hello-spring/src/main/java/hello/hello_spring/contoroller 폴더를 생성하고 그 안에 만들어준다(hello-spring/src/main/java/hello/hello_spring/contoroller/MemberController.java)package hello.hello_spring.contoroller;import hello.hello_spring.service.MemberService;impo..
[2026 1학기 알고리즘 스터디] 최비성 #4주차 자료구조 + 그리디1. 올바른 괄호def solution(s): depth = 0 for char in s: depth += 1 if char == '(' else -1 if depth (는 +1, )는 −1로 누적하면서 중간에 음수가 되면(=닫는 괄호가 먼저 나옴) False, 끝까지 0이면 True. 괄호 종류가 하나뿐이라 스택 없이 카운터만으로 충분 2. 기능개발import mathdef solution(progresses, speeds): days_left = [math.ceil((100 - p) / s) for p, s in zip(progresses, speeds)] result = [] deploy_day = days_left[0] b..
[2026 1학기 알고리즘 스터디] 최비성 #3주차 DFS / BFS 문제1. 타겟 넘버def solution(numbers, target): answer = 0 def dfs(idx, total): nonlocal answer if idx == len(numbers): if total == target: answer += 1 return dfs(idx + 1, total + numbers[idx]) dfs(idx + 1, total - numbers[idx]) dfs(0, 0) return answer 각 숫자마다 더하기/빼기 두 갈래로 재귀 분기해 모든 부호 조합을 탐색하고, 마지막 인덱스에서 누적합이 target과..
[2026 1학기 알고리즘 스터디] 김광철 #3주차 3주차 알고리즘 스터디 블로그 시작하겠습니다.이번엔 DFS와 BFS에 대해 공부했습니다.저번 주차에서 완전탐색과 백트래킹을 하면서 DFS를 살짝 사용했었는데, 이번에는 본격적으로 DFS와 BFS 문제들을 풀어봤습니다.저번에 그냥 사용하던 DFS를 이번에 제대로 공부하면서, BFS와의 차이점도 살펴보았습니다.1. 타겟 넘버#include #include using namespace std;int answerCount = 0;void dfs(vector& numbers, int target, int index, int sum) { if (index == numbers.size()) { if (sum == target) { answerCount++; } ..
[2026 ROS 스터디] 지태현 ROS2 #5주차 ROS2설치 및 환경설정Ubuntu 22.04, 터미네이터 추천,chrome, python pip, Jupyter notebook설치 권장Viscose 설치Jupyter 사용법mkdir python으로 폴더 만들고, jypeter notebook을 실행하고 python3를 선택하면 쉘을 실행할 수있게 된다.마크다운:문서를 만드는 친구(jupyter가 지원), jupyter를 아름답게 만들어 주는 친구이렇게 노션처럼 쓸 수 있다.sublime text: 간단하게 볼 수 있는 EditorROS2 humble(22.04)에 맞는 ROS2 버전(설치는 공식페이지에서 하는 것이 바람직하다)위와같은 코드로 잘 설치 되어있는지 확인할 수 있다.(RQT_Graph)(토픽 보내기like ros1)sudo apt upda..
[2026 ROS 스터디] 이정후 #5주차 ROS2 입문환경설정Terminator 설치터미널:1. sudo apt update 입력2. sudo apt install terminator 입력3. y 입력4. Terminator 실행5. Add to Favorites로 즐겨찾기 추가Chrome 설치1. sudo apt update 입력2. wget --version 입력if 버전 정보가 출력 안 될시: sudo apt install wget3. wget http://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb 입력4. sudo dpkg -i google-chrome-stable_current_amd64.deb 입력5. sudo apt install chromium-browse..
[2026 1학기 스프링부트 스터디] 주민건 #2주차 섹션 4 : 회원관리 예제 - 백엔드 개발10. 비즈니스 요구사항 정리데이터 : 회원 ID, 이름기능 : 회원 등록, 장소데이터 저장소 선정 X컨트롤러 : 웹 MVC의 컨트롤러서비스 : 핵심 비즈니스 로직 구현리포지토리 : 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리도메인 : 비즈니스 도메인 객체(회원, 주문, 쿠폰 등 주로 데이터베이스에 저장하고 관리됨) 아직 데이터 저장소 선정 X -> 우선 인터페이스로 구현 후 클래스를 변경할 수 있도록 설계 11. 회원 도메인과 리포지토리 만들기도메인 패키지와 리포지토리 패키지를 만들고, Domain 패키지에는 Member 클래스를,Repository 패키지에는 MemberRepository 인터페이스와 MemoryMemberRepository 클래스..
[2026 ROS 스터디] 이하람 #5주차-ROS2 개발 환경 구축 및 초기 설정본 강의에서 사용하는 ROS2의 버전은 우분투 22.04 및 ROS2 Humble이다.sudo apt install python3-pip && pip3 install --upgrade pippip install jupyter(pip3 install jupyter)vscode 설치sublime text도 설치 가능MarkDown 문법1. 제목기호의 개수를 통해 제목의 계층과 크기를 조절함# 큰 제목: 가장 큰 크기의 제목## 중간 제목: 중간 크기의 제목### 작은 제목: 가장 작은 크기의 제목2. 목록번호 없는 목록: 별표(*)를 기입하고 한 칸 띄운 뒤 내용을 작성함번호 있는 목록: 숫자를 사용하여 순차적인 리스트를 구성함3. 글자 강조별표(*)를 사용하여 텍스트의 형식을 ..
[2026 1학기 알고리즘 스터디] 남윤찬 #3주차 2주차 - DFS/BFS 타겟 넘버import java.util.*;class Solution { //bfs public int solution(int[] numbers, int target) { int answer = 0; Deque deque = new LinkedList(); deque.add(0); for (int n : numbers) { Deque dummy = new LinkedList(); for (Integer parent : deque) { dummy.add(parent+n); dummy.add(parent-n); ..
[2026 1학기 스프링부트 스터디] 최종은 #2주차 회원관리 예제를 만드는게 이번주차의 주된 목표입니다 순서1: 비즈니스 요구사항 정리2: 회원 도메일, 레포지토리 만들기3: 회원 레포지토리 테스트케이스 작성4: 회원 서비스 개발5: 회원 서비스 테스트 우선 강의에서 가장의 시나리오를 작성하였습니다필요한 데이터: 회원 ID, 이름기능: 회원 등록, 조회(아직 데이터 저장소가 선정되지 않음) 일반적인 웹 어플리케이션의 계층 구조컨트롤러: 웹 MVC의 컨트롤러 역할서비스: 비즈니스 도메인 객체를 이용해 핵심 비즈니스 로직이 동작하도록 구현(Ex: 회원은 중복가입이 안된다, 이름은 영어로 등등)레포지토리: DB에 접근, 도메인 객체를 DB에 저장하고 관리도메인: 비즈니스 도메인 객체(Ex: 회원, 주문, 쿠폰 등을 DB에 저장, 관리) MemberRepos..
[2026 1학기 알고리즘 스터디] 김승혁 #2주차 1. 완전탐색이란?가능한 모든 경우를 전부 확인하는 방법.예를 들어 숫자 3개 중 하나씩 고르는 경우:for (int i = 0; i 또는 2개를 고르면:for (int i = 0; i 즉, 모든 경우를 다 해보고 정답을 찾는 방식이 완전탐색이다. 2. 백트래킹이란?완전탐색을 하되, 불가능한 경우는 더 이상 탐색하지 않고 돌아가는 방법.핵심 구조는 보통 이렇게 생김:void dfs(현재상태) { if (정답 조건) { 출력 또는 저장; return; } for (가능한 선택들) { if (선택해도 되는지 검사) { 선택; dfs(다음상태); 선택 취소; } }} 중요한 부..
[2026 1학기 알고리즘 스터디] 정채은 #2주차 1. 완전탐색 개념 정리완전탐색은 가능한 모든 경우를 하나씩 확인하면서 정답을 찾는 방법이다.즉, 문제에서 만들 수 있는 경우의 수를 전부 만들고, 그중 조건에 맞는 답을 찾는다.완전탐색을 사용하기 좋은 문제는 다음과 같다.1. 모든 경우를 직접 확인해도 시간 안에 풀 수 있는 문제2. 가능한 조합, 순열, 후보를 모두 만들어야 하는 문제3. 조건에 맞는 경우를 하나씩 검사해야 하는 문제 예를 들어 모든 학생의 답안을 비교하거나, 가능한 숫자를 전부 만들어보거나, 가능한 가로·세로 크기를 하나씩 확인하는 문제가 완전탐색에 해당한다.2. 백트래킹 개념 정리백트래킹은 재귀를 이용해서 가능한 경우를 탐색하는 방법이다.완전탐색의 한 종류라고 볼 수 있다.백트래킹은 보통 다음 흐름으로 진행된다.1. 하나를 선택한..

반응형