분류 전체보기 210

조이스틱 - 프로그래머스(java)

📄조이스틱문제 정리 (프로그래머스 Lv2)# 🕹️ 조이스틱 (프로그래머스 Lv2)## 📌 문제 요약- 문자열을 A로 시작해서 주어진 이름으로 바꾸기 위해- 조이스틱으로 ▲▼ (알파벳 변경), ◀▶ (커서 이동)을 최소 횟수로 조작해야 함---## 💡 핵심 아이디어### 1. 알파벳 변경 (▲▼)- 각 문자마다 `A`에서 원하는 문자까지 가는 최소 횟수는: ```java Math.min(c - 'A', 'Z' - c + 1)2. 커서 이동 (◀▶)단순히 오른쪽으로만 가는 것보다,중간에 A가 연속된 구간이 있으면 꺾어서 가는 게 더 효율적일 수 있음i * 2 + len - next // 오른쪽 갔다가 왼쪽으로 꺾기(len - next) * 2 + i // 왼쪽 갔다가 오른쪽으..

[코딩테스트] 2025.05.05

파일명 정렬 - 프로그래머스 - java

생각 정리무슨 자료구조? -> 딱히 사용 안하는 듯?무슨 구현?head, number, tail어떻게 나누지?함정은?주의 점은?이미지 필기 내용을 확인했고, 순서대로 정리된 로직을 확인해 보았습니다.당신이 적은 내용을 기준으로 논리 순서와 구현 방향이 적절한지 평가 + 보완해드릴게요.✍️ 필기 요약: 당신이 적은 로직head 부분을 소문자로 변환같은 표현력의 head면…number를 오름차순으로 정렬각 자리 head에 관련 수록head + number + tail로 head 기준 정렬?✅ 분석: 순서 및 개념 정리아주 좋은 흐름입니다. 핵심 순서는 맞고, 약간 더 명확히 다듬으면 구현이 훨씬 쉬워져요.다음과 같이 정리해드릴게요:📌 전체 로직 정리 (정확한 논리 순서)1. 파일명 파싱문자열을 순회하며 h..

[코딩테스트] 2025.05.05

가장 큰 수 -프로그래머스 - java

🧠 [프로그래머스 Lv2] 가장 큰 수✅ 문제 개요목표: 주어진 숫자 배열을 이어붙여 만들 수 있는 가장 큰 수를 문자열로 반환입력: int[] numbers – 0 이상 양의 정수들출력: 가장 큰 수를 문자열 형태로 반환🔍 핵심 아이디어:커스텀 정렬정렬 기준숫자 a, b를 문자열로 변환한 후 a + b와 b + a 중 더 큰 쪽이 앞에 오도록 정렬예시: a = "3", b = "30"- "330" vs "303"→ "330"이 더 크므로 "3"이 앞에 와야 함🧩 풀이 순서int[] → String[] 으로 변환정렬 기준: (s1 + s2).compareTo(s2 + s1)을 내림차순으로정렬된 문자열들을 이어붙이기예외 처리: 결과가 "000..."인 경우 "0" 반환💻 자바 예시 코드import..

[코딩테스트] 2025.05.05

과일 장수 - 프로그래머스 - java

과일 장수🍎 문제: 과일 장수각 사과에는 1~k 점수 존재m개씩 포장 → 최소 점수 × m = 상자 가격최대 수익 구하기🧠 핵심 아이디어높은 점수 사과부터 m개씩 포장m개 단위로만 상자 구성 가능 → 일부 남는 사과는 버림🧪 알고리즘점수 오름차순 정렬끝에서 m개씩 묶어 최소값 × m 누적반복🧱 코드 스니펫 (Java)Arrays.sort(score);for (int i = score.length - m; i >= 0; i -= m) { total += score[i] * m;}import java.util.*;class Solution { public int solution(int k, int m, int[] score) { // 1. 점수를 오름차순 정렬 Ar..

[코딩테스트] 2025.05.05

K번째수 - 프로그래머스 (java)

K번째수훌륭해요! 이 문제는 흔히 “부분 배열 자르고 정렬해서 K번째 요소 찾기”라는 구조인데,이건 자르기(Slicing) + 정렬(Sorting) + 인덱싱(Access) 3단계로 분해됩니다.옵시디언에 정리한다면 다음과 같은 구조로 정리하는 걸 추천해요:🟩 K번째 수 (프로그래머스 Lv1)🧩 문제 요약array에서 i번째부터 j번째까지 자르고 정렬한 뒤,k번째 수를 구하라는 문제여러 개의 commands가 주어짐→ 각각 독립적으로 수행🧠 핵심 개념단계설명1. 배열 자르기Arrays.copyOfRange(array, i-1, j)2. 정렬Arrays.sort()3. k번째 수 반환sliced[k-1] (0-index 보정 필요)문제 포인트: 0-index 기반과 1-index 기반 혼용 주의각 co..

[코딩테스트] 2025.05.05

두 개 뽑아서 더하기 (프로그래머스 Lv1) - java

두 개 뽑아서 더하기좋아요, 이 문제도 자주 등장하는 조합 + 정렬 + 중복 제거 유형이라 옵시디언에 정리해두면 추후 "N개 중 2개 조합 문제"에서 매우 유용하게 재활용됩니다.🟩 두 개 뽑아서 더하기 (프로그래머스 Lv1)🧩 문제 요약주어진 정수 배열에서 서로 다른 인덱스 2개를 골라 더한 값들을중복 없이 오름차순 정렬하여 리턴🧠 핵심 개념단계설명1. 모든 2개의 조합 생성이중 for문 사용 (i, j=i+1)2. 중복 제거Set 사용3. 정렬 후 배열로 반환List → 정렬 → 배열로 변환🔄 조합은 순서가 중요하지 않으므로 i ☑ 합한 결과는 중복 가능성이 있으므로 Set 사용✅ 예시 코드 스니펫 (Java)Set set = new HashSet();for (int i = 0; i list ..

[코딩테스트] 2025.05.05

SQLP -3

제 4절 관계관계의 개념엔터티의 인스턴스 사이의 논리적인 연관성으로서 존재의 형태로서나 행위로서 서로에게 연관성이 부여된 상태관계의 분류행위존재관계의 표기법관계명관계의 이름엔터티가 관계에 참여하는 형태를 지칭한다.IE 표기법바커 표기법애매한 동사는 피하고 현재형으로 한다관계차수1:11:MM:N  관계선택사양필수관계ex) 지하철의 문이 닫혀야만 지하철은 출발한다.선택관계지하철 안내방송과 지하철의 출발필수 참여예) 주문서 - 주문목록선택 참여예) 목록 - 주문만약 관계가 표시된 양쪽 엔터티에 모두 선택 참여가 표시된다면, 즉 0:0의 관계가 된다면 그 관계는 잘못된 확률이 많으므로 관계설정이 잘못되었는지를 검토해 보아야 한다.

[SQLP] 2024.07.08

SQLP -2

속성의 특징엔터티와 마찬가지로 반드시 해당 업무에서 필요하고 관리하고 관리하고자 하는 정보여야 한다.정규화 이론에 근거하여 정해진 주식별자에 함수적 종속성을 가져야 한다.하나의 속성은 한 개의 값만을 가진다. 하나의 속성에 여러 개의 값이 있는 다중값일 경우 별도의 엔터티를 이용하여 분리한다.속성의 분류속성의 특성에 따른 분류기본속성기본속성은 업무로부터 추출한 모든 속성이 여기에 해당하며, 엔터티에 가장 일반적이고 많은 속성을 차지한다.설계속성설계속성은 업무상 필요한 데이터 이외에 데이터 모델링을 위해, 업무를 규칙화하기 위해 속성을 새로 만들거나 변형하여 정의하는 속성이다.파생속성파생속성은 다른 속성에 영향을 받아 발생하는 속성으로, 보통 계산된 값들이 이에 해당한다.엔터티 구성방식에 따른 분류엔터티를..

[SQLP] 2024.07.08

[SQLP] 공부 시작 1일 차

엔터티를 이해할 때에 눈에 보이지 않는 개념도 엔티티로서 인식할 수 있어야 한다.엔터티의 특징업무에서 필요로 하는 정보식별 가능해야인스턴스의 집합업무 프로세스에 의해 이용해야속성 포함관계의 존재엔터티의 분류유무형에 따른 분류발생시점에 따른 분류기본엔터티그 업무에 월래 존재하는 정보중심엔터티기본엔터티로부터발생되고 그 업무에서 중심적인 역활을 한다.행위엔터티두 개 이상의 부모엔터티로부터 발생하고, 자주 내용이 바뀌거나 데이터 양이 증가한다.엔터티 분류 방법의 예유무형에 따라발생시점에 따라엔터티의 명명속성속성의 개념업무에서 필요로 한다.의미상 더 이상 분리되지 않는다.엔터티를 설명하고 인스턴스의 구성요소가 된다.엔터티, 인스턴스와 속성, 속성값에 대한 내용과 표기법엔터티, 인스턴스, 속성, 속성 값의 관계한 ..

[SQLP] 2024.07.08

MQTT - 2

MQTT 프로토콜의 지연 문제를 해결하기 위해 QUIC 프로토콜을 사용하는 방법은 무엇인가요MQTT 프로토콜의 지연 문제를 해결하기 위해 QUIC(Quick UDP Internet Connections) 프로토콜을 사용하는 방법은 여러 가지가 있습니다. QUIC는 TCP의 한계를 극복하고, 특히 네트워크가 불안정하거나 빈번하게 변경되는 IoT 환경에서 더 나은 성능을 제공합니다. 아래는 MQTT 프로토콜에서 QUIC를 사용하는 방법과 그 이점에 대한 설명입니다.MQTT over QUIC의 주요 이점1. 빠른 연결 설정QUIC는 0-RTT(Zero Round Trip Time) 및 1-RTT 연결 설정을 지원하여, TCP보다 훨씬 빠르게 연결을 설정할 수 있습니다. 이는 네트워크 지연을 줄이고, 특히 빈번..