TIL 28

[회고] 데브코스 2차 프로젝트 회고

*이 포스팅은 AI가 아닌 수제 포스팅입니다 이번에도~ 3차 프로젝트 시작과 함께 쓰는 2차 프로젝트 회고! 프로그래머스 생성형 AI 백엔드 데브코스를 수강중이고,1차 프로젝트에 이어 4월 28일~ 5월 13일 약 2주동안 2차 프로젝트를 진행했다. 1차 프로젝트 이후에 데브코스에서는 - Java, Spring Boot, MVC, REST- Spring Data JPA, MySQL, PostgreSQL- Spring Security, JWT- LLM, AI 활용 등 이제 백엔드의 메인 기술들을 배웠다! 2차 프로젝트는 "AI 기반 팀원 매칭 플랫폼"이 주제였고,지금까지 배운 기술들을 총집합하여 5명의 팀원들이 하나의 프로젝트를완성해내는 것이 목표였다. 보통 프로젝트를 시작하기 전에 대부분 ✅ ..

TIL/회고 2025.06.09

[CS] DFS와 BFS

오늘의(라고 하지만 2달만에 쓰는) 알고리즘 주제는 바로 BFS와 DFS 이유는 모르겠지만 가장 어렵게 느껴지고,항상 마스터하지 못한채 포기한 개념이었던 거 같은데...이제는 더이상 물러날 곳이 없다 우선 쉽게 어떤 느낌인지 파악해보자면 미로를 생각하면 된다.그런데 이제 내가 이 미로 안에 들어가 있고, 출구와 전체적인 지도도 모를 때이 미로를 푸는 방법은 두 가지다 1. 무작정 한 길로 쭉 가다가 막히면 다시 되돌아오기 => DFS!2. 갈림길이 나오면 갈 수 있는 모든 곳을 다 훑어보고 다음 단계로 넘어가기 => BFS! 이 느낌을 가지고 DFS와 BFS를 좀 더 알아보자. 🗺️ DFS 깊이 우선 탐색, Depth-First-Search 원문 그대로 'Depth = 깊이'를 우선적으로 탐색하..

TIL/알고리즘 2025.06.07

[CS] 정렬

알고리즘 문제 풀이에서 정렬(Sorting)은 꼭 알고 있어야 하는 기본이다.단순 오름차순, 내림차순을 넘어 문제 해결 전제가 되거나, 복잡한 알고리즘의 기반이 된다.이 포스트에서는 정렬 알고리즘의 종류, 시간복잡도마지막으로 Java에서의 정렬에 대해 작성한다 1. 정렬(Sorting)이란?정렬이란 데이터를 일정한 기준에 따라 순서를 재배열하는 작업이다.대표적인 예시로는 오름차순으로 1, 2, 3, 4와 같이 커지는 방향으로 정렬한다. - 효율적인 탐색이나 비교를 위해- 중복을 제거하거나 우선순위 처리를 위해- 이진 탐색을 위해 위의 세 가지 경우에서 정렬은 필수적으로 사용된다. 2. 정렬의 종류정렬 방식엔 다양한 종류가 있는데, 대표적인 정렬 방식에 대해 알아보자.각 정렬은 오름차순을 기준으로 설..

TIL/알고리즘 2025.06.07

[JAVA] 프로그래머스 | 12909 올바른 괄호

📝 TIL- [프로그래머스] 12909 올바른 괄호 "()()" 또는 "(())()" 는 올바른 괄호입니다.")()(" 또는 "(()(" 는 올바르지 않은 괄호입니다. 제한사항문자열 s의 길이 : 100,000 이하의 자연수문자열 s는 '(' 또는 ')' 로만 이루어져 있습니다. 입출력 예입출력 예#1 🦔 설계 및 시도너무 대표적인 문제라! 금방 풀었다이 문제의 핵심은 닫는 괄호가 가장 처음 들어올 때의 처그리고 스택이 남아있으면 false를 출력하는 것이 중요하다! 1. 여는 괄호 ( 가 나오면 스택에 push2. 닫는 괄호 ) 가 나오면 2-1. 스택이 비어 있으면 return false (어차피 짝이 안맞음)2-2. 들어가 있는 (가 있으면 pop으로 빼주기3. 문자열 끝까지 실행 후 스택이 비..

TIL/알고리즘 2025.04.17

[JAVA] 프로그래머스 | 42583 다리를 지나는 트럭

📝 TIL- [42583] 다리를 지나는 트럭 문제를 요약하면 다음과 같다. 다리 위에는 bridge_length만큼 트럭이 동시에 올라갈 수 있다.다리 위 트럭들의 무게 합은 weight보다 작아야 한다.트럭은 1초마다 한 칸씩 움직인다.모든 트럭이 다리를 지나려면 몇 초가 걸리는가? 제한사항bridge_length는 1 이상 10,000 이하입니다.weight는 1 이상 10,000 이하입니다.truck_weights의 길이는 1 이상 10,000 이하입니다.모든 트럭의 무게는 1 이상 weight 이하입니다. 입출력 예입출력#1🦔 설계 및 시도1시간 동안 해결이 안돼서 정답을 본 문제. 내가 고민하던건 Queue의 경우 offerLast 즉, 값을 넣으면 빈 공간이 없이 쌓이는데,이 문제는 ..

TIL/알고리즘 2025.04.17

[JAVA] 백준 | 17413 단어뒤집기 2

📝 TIL- [백준] 17413 단어뒤집기 2 제한사항시간제한 1초메모리 제한 512MB 입출력 예입출력예 #1# 처리된 내용이 출력!baekjoon online judge // noojkeab enilno egduj tag // gatef gh // fe hg17413problem ever // 31471melborp reve 🦔 설계 및 시도문자열이 주어질 때 안(태그)은 그대로 출력,태그 밖의 단어는 공백 단위로 뒤집어 출력한다. (1차) 단순하게(사실 이것도 복잡하다고 생각했지만 가 들어오면 그대로 출력을 생각했으나 태그 안의 공백은 무시하고 그대로 출력되어야 한다. (2차) tag=0으로 초기화하여, > 가 들어오면 그대로 출력하고 tag는 다시 0으로를 생각했었는데, 계속 deque..

TIL/알고리즘 2025.04.15

[JAVA] 프로그래머스 | 12933 정수 내림차순으로 배치하기

📝 TIL- [프로그래머스] 12933 정수 내림차순으로 배치하기 제한사항n은 1이상 8000000000 이하인 자연수입니다. 입출력 예입력#1118372 출력#1873211🦔 설계 및 시도주어진 long n을 문자열로 변환하고 문자 단위로 자르고,큰 순서대로 정렬해서 합치기 💡 풀이 소스 코드 시간복잡도 : O(n log n)공간복잡도 : O(n) import java.util.*;class Solution { public long solution(long n) { long answer = 0; String num = Long.toString(n); String[] number = num.split(""); Arrays.so..

TIL/알고리즘 2025.04.15

[JAVA] 프로그래머스 | 12906 같은 숫자는 싫어

📝 TIL- [프로그래머스] 12906 같은 숫자는 싫어https://school.programmers.co.kr/learn/courses/30/lessons/12906 제한사항배열 arr의 크기 : 1,000,000 이하의 자연수배열 arr의 원소의 크기 : 0보다 크거나 같고 9보다 작거나 같은 정수 입출력 예입력#1[1, 1, 3, 3, 0, 1, 1][1, 3, 0, 1] 출력#1[1, 3, 0, 1][4, 3] 🦔 설계 및 시도1. stack을 사용하여 아예 비어있으면 값을 넣고,2. 앞의 값과 동일하면 안 넣기 / 2-1. 다르면 넣기 처음에 stack을 사용해서 아래와 같이 풀었다. public class Solution { public int[] solution(int []arr)..

TIL/알고리즘 2025.04.14

[JAVA] 프로그래머스 | 12932 자연수 뒤집어 배열로 만들기

📝 TIL- [프로그래머스] 12932 자연수 뒤집어 배열로 만들기 제한사항 n은 10,000,000,000이하인 자연수입니다  입출력 예입력#1 12345  출력#1 [5,4,3,2,1] 🦔 설계 및 시도1. 숫자를 문자열로 변환 후 뒤집기2. 하나씩 쪼개서 정수로 저장! 문제 풀이 자체는 간단했는데 parseInt, String.valueOf 등 타입과 메서드 신경써야 할 것들이 많아서 은근 오래 걸렸다  🔥 풀이에 사용된 개념 String.valueOf(n)- 숫자나 여러 타입들(int, long, boolean 등)을 문자열(String)으로 바꿔주는 메서드- n+"" 로 쓰는 것과 비슷하지만 더 명시적이고 안전하다  Integer.parseInt(문자) - 문자열을 정수(int)로 바꿔주..

TIL/알고리즘 2025.04.10

[JAVA] 프로그래머스 | 181866 문자열 잘라서 정렬하기

📝 TIL- [프로그래머스] 181866 문자열 잘라서 정렬하 제한사항1 ≤ myString ≤ 100,000myString은 알파벳 소문자로 이루어진 문자열입니다.  입출력 예입력#1 "axbxcxdx"  출력#1 ["a","b","c","d"] 🦔 설계 및 시도1. split을 이용하여 x를 기준으로 나눈다2. 이때! xxxaaa와 같은 문자열은 공백이 생기므로.. 꼭! 빈문자열은 걸러주는 작업을 해야한다.3. 남은 문자열 정렬하여 배열로 반환하기  🔥 풀이에 사용된 개념 Split(String regex)괄호 안의 regex, 정규 표현식을 기준으로 문자열을 나눌 수 있다isEmpty()문자열이 빈 문자열인지 확인! if문과 주로 함께쓰고 빈문자열이면 truelist.toArray(new St..

TIL/알고리즘 2025.04.10