전체 글 204

⁉️ 비트마스킹 – Front End 스킬을 가진 개발자 조회

❓ 문제 설명 SKILLCODES 테이블은 프로그래밍 언어 정보를 담고 있으며, 각 스킬은 2의 제곱 형태의 CODE로 정의되어 있습니다.DEVELOPERS 테이블의 SKILL_CODE는 여러 개의 CODE 값을 비트 OR 연산으로 합친 정수 값입니다.즉, SKILL_CODE의 각 비트는 해당 개발자가 보유한 스킬을 의미합니다.목표는 Front End 스킬을 하나라도 보유한 개발자의 ID, EMAIL, FIRST_NAME, LAST_NAME을 조회하는 것입니다.결과는 ID를 기준으로 오름차순 정렬해야 합니다.📌 제한 조건 · SKILLCODES.CATEGORY = 'Front End' 인 스킬만 고려 · 비트 연산자로 보유 여부 판별 (SKILL_CODE & CODE > 0) · 결과는 ID 기준으로 ..

🚀 Coding Test_ 2025.06.12

🔁 투 포인터 – 이중 for문을 줄이는 알고리즘 기법

❓ 문제 설명 이중 for문(O(n^2))을 사용하는 로직은 느리고 비효율적하지만 모든 경우를 비교해야 한다면 어떻게 해야 할까?→ 투 포인터(투-포인터) 기법을 사용하면 대부분의 이중 반복을 O(n) 수준으로 최적화할 수 있음📌 제한 조건 • 정렬된 배열 혹은 순서가 중요한 데이터• 두 인덱스를 이동하며 전체 범위를 확인해야 하는 경우• 누적합, 합 비교, 구간 탐색 문제 등🔍 풀이 전략 ✔︎ 두 개의 포인터를 사용해서 위치를 기억하며 이동✔︎ 조건에 따라 하나만 이동하거나 둘 다 이동✔︎ while문, 또는 단일 for문으로 구현 가능✔︎ 포인터 변수명 예시 :→ start, end 또는 left, right→ s, e / l, r 등✔︎ 화살표가 양방향으로 움직이는 그림이 있다면 → 투 포인터 ..

💻 JAVA_ 2025.06.11

🔢 정렬 판별 – 오름차순? 내림차순? (CodeUp 2008)

❓ 문제 설명 정수 n개로 이루어진 수열이 입력된다.이 수열이 오름차순인지, 내림차순인지, 아니면 섞여 있는지를 판단하여 출력하는 프로그램을 작성• 오름차순 : 앞 숫자 ≤ 뒷 숫자 (같은 숫자 포함 가능)• 내림차순 : 앞 숫자 ≥ 뒷 숫자 (같은 숫자 포함 가능)• 위 조건에 해당하지 않거나, 모두 같은 숫자인 경우는 ‘섞임’으로 판단 👉 예시• 1 1 2 3 5 5 6 → 오름차순• 7 6 6 5 3 1 → 내림차순• 21 22 21 22 또는 3 3 3 3 → 섞임📌 제한 조건 • n은 2 이상 100 이하• 수열의 각 원소는 1 이상 200 이하• 출력은 정확히 "오름차순", "내림차순", "섞임" 중 하나🔍 풀이 전략 • 두 개의 boolean 변수 ifUp, ifDown을 선언• 인접한..

🚀 Coding Test_ 2025.06.11

⁉️ 스택으로 푸는 올바른 괄호 – 자바 코딩 테스트 풀이

❓ 문제 설명괄호 문자열이 주어지면 이 문자열이 올바른 괄호 문자열인지 판단하는 프로그램을 작성올바른 괄호 문자열이란 아래 조건을 모두 만족하는 경우 : • 여는 괄호 (와 닫는 괄호 )의 짝이 모두 맞아야 함• 괄호의 포함 관계도 올바르게 구성되어야 함 👉 예시 :• (()()) → 올바른 괄호 문자열• )()( → 닫는 괄호가 먼저 등장 → 잘못된 구조📌 제한 조건 • 입력 문자열은 (, )로만 이루어짐• 길이는 1 이상 50,000 이하• 중간에 공백이나 다른 문자는 포함되지 않음🔍 풀이 전략 • 스택을 사용하여 여는 괄호를 담아두고, 닫는 괄호가 나올 때 짝을 맞춘다• 여는 괄호 ( → stack.push()• 닫는 괄호 ) → 스택이 비어있으면 잘못된 구조 → 바로 "bad"• 문자열을 끝..

🚀 Coding Test_ 2025.06.10

⚔️ Java vs Python 문법 비교: 점수 계산 예제로 이해하는 차이점

✅ 파이썬은 어떤 언어? 1️⃣ 인터프리터 언어 : 코드를 한 줄씩 해석 → 대화하듯 실행 가능2️⃣ 스크립트 언어 : 비교적 가볍고 빠르게 실행3️⃣ 동적 타이핑 : 변수 선언 시 타입 지정 불필요 (type() 함수로 확인 가능)4️⃣ 객체지향 지원 : 클래스를 통한 캡슐화 및 상속 가능5️⃣ 리스트 = 자바 배열 개념과 유사 + 슬라이싱 가능 (범위 지정 접근)6️⃣ 함수 vs 메서드 : 함수는 독립, 메서드는 주체(객체)가 있음7️⃣ 내장 함수 강력 : max(), min(), len() 등 강력하고 사용 편리✅ JAVA 코드import java.util.Scanner;public class Main { public static void main(String[] args) { /..

🅿️ Python_ 2025.06.09

📚 Spring 정리 2탄 : 자바 및 백엔드 핵심 개념 정리

✅ Join • 데이터 중복 저장을 피하기 위해 여러 테이블에 나누어 저장 (정규화)• 테이블 간의 관계(Relationship)를 통해 원하는 데이터를 도출• 관련 컬럼을 기준으로 여러 테이블의 행을 결합✅ 정규화 • 데이터 중복 제거, 저장 공간 절약• 테이블 분할 → 관계형 구조 생성✅ Index (DB) • 테이블 검색 속도 향상을 위한 자료구조• 성능을 높이지만, 추가적인 쓰기 작업과 저장 공간 필요✅ SW 디자인 패턴 (GoF 디자인 패턴) • 효율적인 설계와 유지보수를 위한 구조적 개발 방법론• 대표 패턴 : MVC, Singleton, Template, Factory 등✅ MVC 패턴 • 관심사 분리로 코드 구조 명확화• UI, 로직 분리 → 독립적 유지보수 가능• 생산성과 유지보수성 향상..

✅ Spring_ 2025.06.09

📚 Spring 정리 : 핵심 개념 정리

✅ 자바 컬렉션 프레임워크란? • 다수의 데이터를 효율적으로 저장하고 처리하기 위한 클래스 모음• 자료구조와 알고리즘을 모듈화하여 구현• 주요 인터페이스 : List, Set, Map• 제네릭(Generic)과 함께 사용하여 타입 일반화 지원✅ 제네릭(Generic)이란? • 데이터 타입을 일반화하여 코드 재사용성과 타입 안정성 확보✅ 정렬 알고리즘 종류 • 버블 정렬• 선택 정렬• 삽입 정렬• 합병 정렬• 힙 정렬• 퀵 정렬• 트리 정렬 등✅ 탐색 알고리즘 종류 • 선형 탐색• 이진 탐색• 해시 탐색✅ 객체지향 프로그래밍(OOP) 4대 특성 1️⃣ 추상화 (Abstraction)• 공통된 속성과 기능을 정의• 추상 클래스, 인터페이스로 구현• 핵심 역할만 정의하고, 실제 구현은 객체에서 수행 2️⃣ 상..

✅ Spring_ 2025.06.08

⁉️ 탑의 레이저 통신 – 자바 코딩 테스트 풀이

❓ 문제 설명 KOI 통신연구소는 레이저를 이용한 비밀 통신 시스템을 개발 중입니다.이를 위해 일직선 상에 N개의 높이가 서로 다른 탑을 세우고, 탑의 꼭대기에 레이저 송신기를 설치했습니다. • 모든 탑은 **자신의 왼쪽 방향(즉, 앞쪽 탑들)**으로 레이저를 발사합니다.• 레이저는 가장 먼저 만나는 하나의 탑에서만 수신됩니다.• 수신 장치는 모든 탑의 몸체에 부착되어 있으며, 발사된 레이저는 본인의 앞쪽에 있는 탑 중 본인보다 높은 탑에서만 수신될 수 있습니다.예시 설명 탑의 높이 배열이 [6, 9, 5, 7, 4]인 경우 :탑 번호: 1 2 3 4 5높이: 6 9 5 7 4레이저: ← ← ← ← ←- 5번 탑(4)의 레이저 → 4번 탑(7)이 수신- 4번 탑(7)의 레이저 ..

🚀 Coding Test_ 2025.06.07

⁉️ 소들의 헤어스타일 – 자바 코딩 테스트 풀이

❓ 문제 설명 농부 존의 N마리 소들은 한 줄로 서 있으며, 각 소들은 오직 자신의 오른쪽에 있는 소들의 헤어스타일만 볼 수 있습니다.단, 아래 조건을 만족해야 합니다 : 1️⃣ i번째 소의 키가 hi일 때, 오른쪽 소들 중 자기보다 작은 키인 경우에만 계속해서 볼 수 있습니다.2️⃣ 만약 자신보다 크거나 같은 키의 소를 만나면, 그 이후 소들은 볼 수 없습니다.📌 예시입력:610374122해석:1번 소는 2, 3, 4번 소의 머리(3, 7, 4)를 볼 수 있음 (12에서 시야 차단)2번 소는 3번(7)에서 시야 차단됨3번 소는 4번(4)만 볼 수 있음 (12에서 시야 차단)4번 소는 5번(12)에서 시야 차단됨5번 소는 6번(2)만 볼 수 있음6번 소는 마지막이므로 볼 수 있는 소 없음총 확인 수: ..

🚀 Coding Test_ 2025.06.06

⁉️ 올바른 괄호 – 자바 코딩 테스트 풀이

❓ 문제 설명 괄호로 이루어진 문자열 s가 주어졌을 때, 이 문자열이 올바른 괄호로 구성되어 있는지 판단하는 함수를 구현하세요.올바른 괄호란 다음과 같은 규칙을 만족해야 합니다: • 여는 괄호 '('가 먼저 나오고, 그에 맞는 닫는 괄호 ')'가 올바르게 짝지어진 구조• 예시 1️⃣ "()()" → true2️⃣ "(())()" → true3️⃣ ")()(" → false📌 제한 조건 • 문자열 s의 길이: 1 이상 100,000 이하• 문자열은 '(', ')' 문자로만 구성됨🔍 풀이 전략 • 여는 괄호 '('를 만나면 카운트를 +1• 닫는 괄호 ')'를 만나면 카운트를 -1• 카운트가 중간에 음수가 되는 순간 → false (닫는 괄호가 먼저 등장)• 모든 문자를 순회한 뒤, 카운트가 0이면 올바른..

🚀 Coding Test_ 2025.06.05