Java

·Algorithm 🤖
❓공부하게 된 계기 ➡️ 다음 알고리즘 스터디 주제인 이분 탐색에 대해서 예습 ❗️공부한 내용 1️⃣ 이분탐색이란? ➡️ 순차적 탐색과 비교해보면 정확히 알 수 있다. ① 순차적 탐색 (Sequential Search) ➡️ 처음부터 하나하나씩 비교해가며 끝까지 탐색하는 것이다. 최악의 경우 마지막 데이터 까지 탐색하므로 O(n) 의 시간 복잡도를 가지고 있다. ② 이분 탐색 (Binary Search) ➡️ mid 값을 구해서 계속해서 탐색 범위를 반씩 줄여나가며 탐색하는 것이다. 최악의 경우 Tree 구조에서 마지막 leaf 값까지 내려감으로 O(logN) 의 시간 복잡도를 가지고 있다. 2️⃣ 이분탐색 과정 ① 처음 범위는 index 0 에서 끝까지 이다. 이 때의 mid = 배열의 길이 / 2 ②..
·Coding Test 📜
🌟 프로그래머스 / Graph / Level 3 / 순위 📃 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🚫 제한 사항 선수의 수는 1명 이상 100명 이하입니다. 경기 결과는 1개 이상 4,500개 이하입니다. results 배열 각 행 [A, B]는 A 선수가 B 선수를 이겼다는 의미입니다. 모든 경기 결과에는 모순이 없습니다. 👀 입출력 예 n results return 5 [[4, 3], [4, 2], [3, 2], [1, 2], [2, 5]] 2 🤔 풀이 방법 1️⃣ 내 생각 정리 ➡️ 아래 2가지 방법을 생각해보았지만 코드로 옮기거나 논..
·Algorithm 🤖
❓공부하게 된 계기 ➡️ 다음 알고리즘 스터디 주제인 Graph 에 대해서 예습 ❗️공부한 내용 1️⃣ 그래프란? ① 정의 ➡️ 정점 (Vertex) 와 그 사이를 잇는 간선 (Edge) 로 이루어진 자료구조. ✔️ 정의 G = (V,E) : 정점의 집합 V 와 간선의 집합 E 로 이루어진 구조를 의미 V(G) : 그래프 G 안에서의 정점의 집합 E(G) : 그래프 G 안에서의 간선의 집합 ② 예시 (무방향 그래프 기준) ➡️ V(G) = {1, 2, 3, 4, 5} ➡️ E(G) = {(1, 2), (3, 1), (3, 2), (4, 1), (5, 2), (5, 4)} 2️⃣ 그래프 종류 ① 무방향 그래프 (Undirected Graph) ➡️ 간선에 방향의 속성이 없는 그래프이다. 두 정점 V, W ..
·Coding Test 📜
🌟 프로그래머스 / Graph / Level 2 / 가장 먼 노드 📃 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🚫 제한 사항 노드의 개수 n은 2 이상 20,000 이하입니다. 간선은 양방향이며 총 1개 이상 50,000개 이하의 간선이 있습니다. vertex 배열 각 행 [a, b]는 a번 노드와 b번 노드 사이에 간선이 있다는 의미입니다. 👀 입출력 예 n vertex return 6 [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] 3 🤔 풀이 방법 1️⃣ 그래프 구현 ➡️ 그래프 구현 ..
·Coding Test 📜
🌟 프로그래머스 / 연습문제 / Level 2 / 숫자 변환하기 📃 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🚫 제한 사항 1 ≤ x ≤ y ≤ 1,000,000 1 ≤ n 0) { answer = Math.min(answer, depth); return; } answer = depth; return; } // 부분 ③ dfs (y, depth+1, 0); dfs (y, depth+1, 1); dfs (y, depth+1, 2); return; } 부분 ① ➡️ %2 / %3 / -n 중 어떤 연산을 해야하는지 확인하기 위해 switch 문을 ..
·Coding Test 📜
🌟 프로그래머스 / 연습문제 / Level 2 / 롤케이크 자르기 📃 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🚫 제한 사항 1 ≤ topping의 길이 ≤ 1,000,000 1 ≤ topping의 원소 ≤ 10,000 👀 입출력 예 topping result [1, 2, 1, 3, 1, 4, 1, 2] 2 [1, 2, 3, 1, 4] 0 🤔 풀이 방법 1️⃣ 배열 ① 기본 아이디어 (1) 배열 생성 ➡️ 주어진 topping 배열을 좌에서 우로 한 번 & 우에서 좌로 한 번 탐색하며, 토핑의 종류의 개수를 기록한 배열을 만든다. ex) 입출력..
Doit_Young
'Java' 태그의 글 목록