분류 전체보기 345

[JAVA/Regex] 중복되는 영어 단어 제거

- 중복되는 영단어 제거 정규식"\\b(\\w+)(\\s+\\1\\b)+" \b:단어의 시작이나 끝 (단어의 경계)공백, 구두점 등과 같은 비단어 문자와 단어 문자(영문자, 숫자 등) 를 구분 가능 (\w+):하나 이상의 단어 문자를 찾습니다.\w는 알파벳 대소문자, 숫자,밑줄(_)을 포함+는 하나 이상의 문자로 이루어진 패턴이 부분은 그룹으로 지정 ( 그룹 1 )(\s+\1\b):\s+: 하나 이상의 공백 문자(스페이스, 탭 등) 찾기\1: 그룹 1 의 내용을 참조하는 역할\b: 단어 경계 전체적으로 작동하는 방식:정규식은 먼저 단어 경계에서 시작하고, 그 다음에 단어 문자가 하나 이상 있는지를 확인합니다. 이 문자는 캡처 그룹 (\w+)에 저장  공백이 최소 하나 이상 있는지를 확인하고, 그 다음에 ..

JAVA/Regex 2024.10.24

[JAVA] 가변인자

가변 인자 ( Variable Arguments )란?   - 메서드의 인자를 가변적으로 받을 수 있도록 하는 기능   - 메서드를 호출할 때 인자의 수가 정해져 있지 않는 경우 (몇 개의 인자를 넘길지 모르는 경우) 에 사용 가능   - 가변 인자는 배열 형태로 메서드에 전달되며, 메서드의 선언에서 ...을 사용하여 표시 가변 인자의 장점    - 유연성: 메서드를 호출하는 쪽에서 인자의 수를 조정가능   - 코드의 가독성: 가변 인자를 사용하면 여러 개의 매개변수를 처리하는 메서드에서 오버로딩을 하지 않아도 됨   - 유지보수 용이성: 인자의 수가 바뀌어도 메서드의 인터페이스를 변경할 필요가 없음  예시 코드 class Solution { public static void add(int... n..

JAVA/Language 2024.10.23

[알고리즘] MST

1. MST 란? 최소 신장 트리는 연결 그래프의 부분 그래프로, 그래프의 모든 정점을 포함하면서 간선의 총 가중치가 최소가 되는 트리( 네트워크 설계, 클러스터링, 그래픽스 등 사용 ) 연결 그래프: 모든 정점이 서로 연결되어 있는 그래프트리: 사이클이 없는 그래프신장 트리: 그래프의 모든 정점을 포함하는 트리최소 신장 트리: 신장 트리 중 간선 가중치의 합이 최소인 트리 2. 구현 방법 1. 크루스칼 알고리즘  - 모든 간선을 가중치 기준으로 정렬합니다.   - 가장 작은 가중치의 간선부터 차례대로 선택하여 MST에 추가   - 간선을 추가할 때, 사이클이 발생하지 않도록 유니온-파인드(Union-Find) 자료구조를 사용하여 관리 시간 복잡도: O(E log E), E: 간선의 수장점: 구현이 간단..

etc 2024.10.21

실전 프로젝트

* 2024.04 ~ 2024.05 (6주) 실전 프로젝트 한 것 총 정리 ✅ 실전 프로젝트 개요  이번 프로젝트는 백엔드와 프론트엔드로 나뉘어 각자의 역할에 맞는 기능을 구현하는 실제 서비스팀의 업무와 유사하게 진행되었습니다. 프로젝트는 6주 동안 기획, 설계, 구현, 유저 테스트, 발표를 모두 진행해야 했기 때문에 시간이 많이 부족하였습니다. 그래서 Back-end Leader로서 프로젝트를 성공적으로 완료하고 정해진 일정(6주) 내에 핵심 기능을 모두 구현하기 위해 노력하였습니다. * 팀 구성은 Design 1명, FE 2명, BE 4명으로 구성되었고 BE 개발자는 다음과 같이 역할 분담을 하였습니다. 팀원1 : 여행 후기 CRUD, 이미지 처리, 좋아요, 스크랩, 모니터링 툴 도입(Grafana,..

개발일지 2024.10.21

[최종 결과] 위치 기반 상품 추천 프로젝트

* 2020.01 ~ 2020.02 팀 프로젝트 기록을 옮김. ✅  0. 프로젝트 설명    당시, 배달의 민족 픽업 서비스가 제공되지 않는 점을 이용해 높아지는 배달료를 해결하기 위해 자신의 위치에서 특정 위치(집)으로 이동하는 경로 중에 음식을 주문하고 이동하면서 하나씩 픽업 할 수 있도록 서비스를 구상하였다. 핵심되는 서비스는 픽업 서비스이며 이동 경로 중 더 싼 음식이나 세일하는 물품이 있는경우 추천을 받아서 사용자가 최적의 구매를 도와주는 것을 차별화된 기능으로 설정하였다.  ✅  0. 목차  ✅  1. 요구사항 개발   ✅  2. 요구사항 정의 및 분석  ✅  3. 유즈케이스 분석 및 정의  ✅  4. 화면 설계 ( 프로토 타입 개발 )     ✅  5. DB 설계  ✅  6. 프로젝트 아키텍..

개발일지 2024.10.17

[최종 결과] 항공 서비스 이용 후기 (개인 프로젝트)

* 2019년도에 진행한 개인 Web/Server 개발 프로젝트 기록을 옮김. ✅ 0. 항공  서비스  이용  후기 (기본 CRUD 프로젝트)    해당 프로젝트는 Web / Server 를 공부하면서 개념을 익히고, 해당 내용을 프로젝트로 진행한 내용으로 Java Web Project로 개발 후, Spring으로 리펙토링한 내용을 담고있습니다. Spring으로 리펙토링 후, Restful 한 구조로 Spring 구조를 변경해 보았습니다. 또한, 기본적인 웹 보안 관련 내용을 포함하고 있습니다.  ✅ 0. 목차 ( 클릭시 해당 위치로 이동) 1. 프로젝트 개요 및 기획 2. 프로젝트 설계 3. 중간결과 4. Web 리펙토링 (Jsp, Html 분리, JQuery, Bootstrap 4) 5. DAO 리펙..

개발일지 2024.10.17

[JAVA] 프로그래머스 가장 먼 노드_그래프

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/49189 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  접근 :   - 입력된 노드의 정보를 양방향 그래프로 저장한다.   - 1 번부터 BFS 로 진행하며 해당거리의 결과를 별도로 저장한다.   - 결과 리스트를 끝에서부터 체크해서 비어 있지 않은 결과의 수를 출력한다.      코드 구현 :  import java.util.*;class Solution { public int solution(int n, int[][] edge) { ..

JAVA/Coding Test 2024.10.16

[JAVA] 프로그래머스 베스트앨범_해쉬

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/42579 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  접근 :    - 가장 많이 재생된 장르 순대로 앨범을 만든다.   - 앨범은 최대 2곡까지 수록할 수 있으며 만약 1곡만 수록되어 있다면 1곡 만 포함한다.   - 앨범에서 노래의 수록 방법은 재생수가 많은 순으로 수록하며, 만약 재생수가 같다면 고유번호가 작은 순으로 선택한다.  * 문제의 조건에서 장르별 동일한 조회수는 없다고 명시   - 장르 객체를 생성하고 장르 객체안에 노래 객체..

JAVA/Coding Test 2024.10.16

[JAVA] 프로그래머스 이중우선순위큐_힙

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/42628 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  접근 :    - 최소 힙, 최대 힙, 재고 HashMap을 생성한후 I가 들어올 경우 입력한다.   - 만약 D -1 이 입력으로 들어온 경우 최소 힙에서 1개를 뺀후 뺀 값을 HashMap에서 재고 감소시킨다.   - 만약 D 1 이 들어온 경우 최대 힙에서 1개를 뺀후 뺀값을 HashMap에서 재고 감소 시킨다.   - 최대/최소 힙에서 데이터를 빼는 경우 항상 먼저 재고가 1 이상인..

JAVA/Coding Test 2024.10.15

[JAVA] 프로그래머스 당구 연습_구현

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/169198 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  접근 :    - 4개의 벽면에 대해서 쿠션을한 이동거리가 최소가 되는 길이를 찾는다.   - 공에 외력이 없이 직선으로 힘이 가해진다면 입사각과 반사각이 같으므로, 시작하는 지점으로 부터 해당 벽면을 기준으로 대칭인 지점의 좌표의 길이를 구하면 이동거리가 된다.   - 만약 x나, y의 좌표가 같아 직선으로 바로 이동하는 경우에는 쿠션을 할 수 없으므로 해당 경우는 제외한다.      ..

JAVA/Coding Test 2024.10.14