| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
- 멀티프로세싱
- spring security 설정
- 자바의 정석
- Comparator
- LocalDate
- 둘만의 암호 자바
- SQL Mapper
- 오버로딩
- 프로그래머스
- 프로그래머스 둘만의 암호
- 분할정복 알고리즘
- 리눅스
- 백트래킹
- 둘만의 암호
- Arrays
- greedy
- 티스토리챌린지
- spring security
- BFS
- java
- 자바의정석
- hackerrank
- 멀티태스킹
- 오버라이딩
- localtime
- 오블완
- over()
- 분할정복
- 혼공얄코
- Comparable
- Today
- Total
목록전체 글 (164)
쉽게 쉽게
📌 핵심 요약이분탐색 — 정렬된 배열에서 탐색 범위를 절반씩 줄여 O(log N)에 값을 찾는다파라메트릭 서치 — "이 값이 정답일 수 있을까?"를 매번 검증하며 정답 후보를 좁혀간다문제풀이 — 백준 문제 10816, 1654, 2805를 풀이하며 이분탐색을 활용해본다. 목차 1 이분탐색 기본 개념정렬된 배열에서 특정 값을 찾을 때, 처음부터 끝까지 하나씩 확인하면 O(N)이 걸린다. 이분탐색은 탐색 범위를 매번 절반으로 줄여 O(log N)에 찾아낸다.ℹ️전제 조건이분탐색은 반드시 정렬된 배열에서만 사용할 수 있다. 정렬되지 않은 배열에 적용하면 틀린 답이 나온다.기본 구조 Java — 기본 이분탐색static int binarySearch(int[] arr, int target) { int l..
📌 핵심 요약분할정복 3단계 — Divide(분할) → Conquer(정복) → Combine(합치기), 기저 조건이 반드시 존재해야 한다분할정복 거듭제곱 — b가 짝수면 절반으로 쪼개고, 홀수면 하나 떼어내서 O(log b)에 계산한다행렬 거듭제곱 — 숫자 거듭제곱과 동일한 분할정복 구조, 곱셈만 행렬 곱셈으로 교체하면 된다 목차 1 분할정복(Divide & Conquer)이란?분할정복은 복잡한 문제를 더 작은 동일한 구조의 하위 문제로 쪼개서 해결하는 알고리즘 설계 기법이다. 재귀(Recursion)를 기반으로 동작하며, 세 단계로 구성된다.단계이름설명1Divide (분할)문제를 더 작은 동일 구조의 하위 문제로 나눈다2Conquer (정복)하위 문제를 재귀적으로 푼다. 더 이상 나눌 수 없으면(기..
📌 핵심 요약백준 1931 회의실 배정 — 종료 시간 오름차순 정렬 후 탐욕적으로 선택. 종료 시간이 같으면 시작 시간 기준으로 2차 정렬백준 11399 ATM — 인출 시간을 오름차순 정렬 후 누적합을 구해 합산. 짧은 사람을 앞에 세울수록 총 대기시간 최소백준 1541 잃어버린 괄호 — 첫 번째 마이너스 이후 등장하는 모든 수를 빼면 최솟값. "-" 기준으로 split 후 각 그룹을 합산 목차1 1931 — 회의실 배정풀이 아이디어Java 코드2 BOJ 11399 — ATM풀이 아이디어Java 코드3 BOJ 1541 — 잃어버린 괄호풀이 아이디어Java 코드 1 백준 1931 — 회의실 배정백 #1931회의실 배정N ≤ 100,000 · 시간제한 2초난이도: Silver I회의실이 하나뿐일 때, 겹..
📌 핵심 요약그리디 알고리즘 — 매 순간 지금 당장 가장 좋아 보이는 선택을 반복해 최적해를 구하는 방법성립 조건 — 탐욕적 선택 속성 + 최적 부분 구조가 모두 만족해야 적용 가능주의점 — 그리디가 항상 정답은 아님. "왜 이 선택이 최적인가"를 반드시 증명해야 함 목차1 그리디 알고리즘이란?핵심 성립 조건그리디 vs DP2 BOJ 11047 — 동전 0풀이 아이디어Java 코드3 BOJ 13305 — 주유소풀이 아이디어Java 코드1 그리디 알고리즘이란?그리디(Greedy) 알고리즘은 "지금 이 순간 가장 좋아 보이는 선택"을 반복하여 최적해를 구하는 방식이다. 미래를 고려하지 않고 현재 상태에서 가장 이득이 되는 선택만을 계속하다 보면 전체 최적해에 도달할 수 있는 문제에 적용한다.ℹ️한 줄 정의..
script.js 에 별도 등록하세요. (티스토리가 서식 내 태그를 자동 삭제합니다) ================================================ -->📌 핵심 요약IntelliJ과 Claude Desktop를 MCP 연동하는 방법과 그 과정에서 발생한 문제들을 정리했습니다.실패 3가지: IntelliJ Community Edition 경로 충돌 / Local vs Roaming 경로 불일치 / port 파일 자동 생성 실패성공 : npx + mcp-proxy 방식 대신 IntelliJ의 Tools → MCP Server → Copy Stdio Config로 생성된 설정을 직접 사용하여 해결 목차 1 환경 및 초기 상태Claude Desktop과 Int..
📌 핵심 요약백트래킹 — 선택 → 재귀 → 취소를 반복하며 모든 경우를 탐색하되, 조건 불만족 시 가지치기(Pruning)하는 기법N과 M (4) · 백준 15652 — 중복을 허용하는 비내림차순 수열, dfs(depth+1, i)로 같은 수 재선택 허용N-Queen · 백준 9663 — 1차원 배열 queen[row]=col로 퀸 위치 관리, 열·대각선 충돌을 isValid()로 가지치기 목차 1 백트래킹이란?백트래킹(Backtracking)은 모든 경우의 수를 탐색하되, 불필요한 경우는 미리 제거(가지치기)하는 알고리즘 기법입니다.완전 탐색(Brute Force)에 가지치기를 더한 것이라고 생각하면 됩니다.핵심 동작 원리백트래킹은 다음 세 단계를 반복합니다.선택(Choose) — 현재 상태에서 가능..
script.js 에 별도 등록하세요. (티스토리가 서식 내 태그를 자동 삭제합니다) ================================================ -->📌 핵심 요약DP는 큰 문제를 작은 문제로 쪼개고, 이미 계산한 값을 저장해 재사용하는 알고리즘 기법입니다.파스칼의 삼각형은 이항 계수를 DP로 표현한 대표적인 예시입니다.문제풀이 과정에서 이항계수의 로직을 재귀 또는 DP를 활용하여 풀이했을 때, 차이점을 알아보려고 합니다. DP를 활용해 백준 11050 · 1010번을 오버플로우 없이 효율적으로 풀 수 있습니다. 목차1 DP(동적 프로그래밍)란?DP(Dynamic Programming, 동적 프로그래밍)는 큰 문제를 작은 부분 문제로 쪼개어, 이미 계..
📌 핵심 요약Collections.sort() — List 구현체(ArrayList, LinkedList 등)에만 사용 가능하며, Comparator를 넘기면 사용자 정의 정렬 적용Comparable — 클래스 내부에 compareTo()를 오버라이드해 기본 정렬 기준 하나를 정의Comparator — 클래스 외부에서 compare() 또는 람다/체이닝으로 여러 정렬 기준을 유연하게 적용 목차1 오름/내림차순 정렬Collections.sort() 정렬은 List 인터페이스를 구현한 컬렉션에만 사용 가능하다. → ArrayList, LinkedList 등Collections.sort(List list)Collections.sort(List list, Comparator comparator) Java — ..
▤ 목차Performance 메뉴는 웹 페이지의 런타임 성능을 심층적으로 분석하는 데 사용된다. 페이지 로드 과정 및 사용자와의 상호작용(새로고침, 클릭 등)시 발생하는 렌더링 속도, 애니메이션 속도, 응답 대기 시간 등을 시각화하여 나타낸다.이를 통해 성능 병목 현상과 렌더링 문제의 원인을 찾는 데 도움을 줄 수 있다.1. Performance 메뉴 활용법1. 기록 시작(Record) 2. 원하는 페이지 동작 수행 녹화가 시작되면 측정하고자 하는 상호작용을 수행한다. (예: 새로고침, 애니메이션 재생, 버튼 클릭 등)3. 기록중지기록 중지: 원하는 활동이 끝났거나 충분한 시간이 지났다면, Stop을 클릭하여 기록을 중지하고 결과를 처리한다. 4. 성능 분석 결과 확인보고서는 여러 섹션으로 나뉘어 시간..
▤ 목차1. 문제설명https://school.programmers.co.kr/learn/courses/30/lessons/150368 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제 설명 카카오톡에서는 이모티콘을 무제한으로 사용할 수 있는 이모티콘 플러스 서비스 가입자 수를 늘리려고 합니다. 이를 위해 카카오톡에서는 이모티콘 할인 행사를 하는데, 목표는 다음과 같습니다.이모티콘 플러스 서비스 가입자를 최대한 늘리는 것. 이모티콘 판매액을 최대한 늘리는 것. 1번 목표가 우선이며, 2번 목표가 그 다음입니다.이모티콘 할인 행사는 다음과 같은 방식으로 진행됩니다.n명의 카카오톡 사용자들에게 이모티콘 m개를 할인..