Algorithm (15) 썸네일형 리스트형 [Programmers/JAVA] 02. 소수 만들기 📄 소수 만들기https://school.programmers.co.kr/learn/courses/30/lessons/12977 문제 분석배열 nums 안의 숫자 중 서로 다른 3개의 수를 더했을 때, 소수가 되는 경우의 개수를 구하는 문제이다. 접근 방법 완전 탐색 을 이용하여 서로 다른 3개의 숫자를 선택하고 그 합이 소수가 되는 경우의 개수를 구한다. 주어진 숫자를 $N$, 배열 nums 의 크기를 $K$라고 할 때, 시간 복잡도는 $O(NK^{3})$이다.$N = 3a$ 인 경우, $N$은 $I = 3$ 일 때와 $I = a$ 일 때 모두 $N$을 나누어 떨어지게 한다.따라서 $I$는 $I^{2} = N$이 되는 경우까지 확인하면 되므로 시간 복잡도는 $O(\sqrt{N}K^{3})$이다... [Programmers/JAVA] 01. 완주하지 못한 선수 📄 완주하지 못한 선수https://school.programmers.co.kr/learn/courses/30/lessons/42576 문제 분석마라톤에 참가한 선수의 이름이 담긴 배열 participant, 완주한 선수들의 이름이 담긴 배열 completion 이 주어진다.이 때, 완주하지 못한 선수의 이름을 리턴하는 문제이다. 접근 방법 완전 탐색 을 사용하여 두 배열의 값이 동일하면 공백으로 치환한다.for 문을 사용하여 공백으로 치환 된 participant 배열의 값 중 공백이 아닌 값을 리턴한다. 배열의 크기를 $N$이라고 할 때, 시간 복잡도는 $O(n^{2})$이다.N">$N$은 최대 $10^{5}$이므로 최대 수행 횟수는 $10^{10}$이고, 따라서 효율성 테스트에서 통과할 수 .. [Leetcode/JAVA] 01. Two Some 📄 Two Somehttps://leetcode.com/problems/two-sum/ 문제 분석정수 배열 nums 의 원소 중 합이 target 인 두 숫자의 인덱스를 반환하는 문제이다. 접근 방법 완전 탐색 을 이용하여 for 문을 통해 합이 target 인 두 원소를 찾을 것이다. 정수 배열 nums 의 크기를 $N$이라고 할 때, 시간 복잡도는 $O(N^{2})$이다.$N$은 최대 $10^{4}$이므로 최대 수행 횟수는 $10^{8}$이고, 따라서 시간 초과에 걸리지 않는다. 코드 설계# 결과를 저장할 배열 result 를 선언한다.# 이중 for 문을 돌며 배열 nums 에서 두 수를 선택하고, 두 수의 합이 target과 같으면 숫자의 인덱스를 반환한다. 코드 구현class Solutio.. [Algorithm] 04. 해시테이블 (Hash Table) 해시테이블 (Hash Table) 해시테이블(Hash Table)은 빠른 탐색을 위해 key-value 쌍으로 데이터를 저장하는 자료구조이다.해시 함수 h에 키 값을 입력 받아 얻은 해시값 h(k)을 위치로 사용하여 데이터를 저장한다. 💡 직접 주소화 테이블 (Direct-address Table) 직접 주소화 테이블(Direct-address Table)이란 key 값이 k인 데이터를 index k 위치에 저장하는 방식이다.// key = 출석번호, value = 이름 // key = ID, value = 이름 person[2024] = "박서준" person["Id1"] = "박서준"person[2025.. [Algorithm] 03. 정렬 (Sorting) 정렬 (Sorting) 정렬에는 오름차순 정렬과 내림차순 정렬이 있다. 💡 배열(Array) 정렬 📍 오름차순 정렬 배열을 오름차순으로 정렬하는 가장 기본적인 방법은 Arrays.sort() 메서드를 사용하는 것이다.public class Main { public static void main(String[] args) { int[] numbers = {5, 2, 9, 1, 5, 6}; String[] words = {"banana", "apple", "cherry"}; // 숫자 오름차순 정렬 Arrays.sort(numbers); System.out.println(Arrays.toString(num)); .. [Algorithm] 02. 리스트 (List) 리스트 (List) 리스트(List)란 순서를 가지고 원소를 저장하는 자료구조로 Array List나 Linked List로 구현이 가능하다. Array List는 요소를 빈번히 검색해야 하거나, 중간 삽입과 삭제가 적은 경우에 적합하다.Linked List는 삽입과 삭제가 빈번하고, 데이터의 물리적 위치가 중요하지 않은 경우에 유리하다. Array List 배열을 기반으로 구성된 List형 자료구조로 정적배열(Static Array)이나 동적배열(Dynamic Array)로 구현이 가능하다. 💡 Static Array Static Array는 다음과 같은 두 가지 특징을 가진다.고정된 크기의 저장 공간을 가진다.연속된 메모리에 순차적으로 데이터를 저장한다.즉, 배열을 선언할 때 선언한 크기만큼 .. [Algorithm] 01. 알고리즘(Algorithm) 개념 및 평가 기준 알고리즘 알고리즘이란 문제를 해결하기 위한 절차나 단계의 집합으로 완전탐색, BFS, DFS, 정렬 등이 자주 사용된다.알고리즘 평가 기준에는 시간/공간/구현 복잡도가 있는데 기업 코딩 테스트에서는 시간 복잡도를 중요하게 생각한다. 시간 복잡도 시간 복잡도는 실행 시간과 연관이 있다.실행 시간은 프로그램이 시작되고 모든 코드를 실행하는데 걸리는 시간을 의미한다. 실행 시간에 영향을 주는 요소는 다양하게 존재하지만, 코드 관점에서는 크게 두 가지로 볼 수 있다.처리해야 하는 코드의 개수한 줄의 코드를 처리하는데 걸리는 시간 💡 빅오(Big-O) 입력 크기(n)에 따라 알고리즘이 실행되는데 필요한 시간 복잡도를 빅오(Big-O)로 표현할 수 있다. 빅오(Big-O)는 계산 결과를 단순화 하기 위해서.. 이전 1 2 다음