빈도수 세기sameFrequencysameFrequency라는 함수를 작성하세요. 두 개의 양의 정수가 주어졌을 때, 두 숫자의 자릿수가 같은 빈도를 갖는지 구합니다. 예시 sameFrequency(182,281) // truesameFrequency(34,14) // falsesameFrequency(3589578, 5879385) // truesameFrequency(22,222) // false 내가 작성한 코드function sameFrequency(num1, num2) { const str1 = String(num1); const newArr1 = Array.from(str1); newArr1.sort((a, b) => a - b); const str2 = String(num2); co..
MST 알고리즘Kruskal(대표적인 그리디 알고리즘)서로소 집합 서로소 집합 코드public class DisjointSetExample { // 부모 노드를 저장할 배열 static int[] p; // 집합을 초기화하는 메서드 static void makeSet(int V) { // V개의 원소를 가지는 배열을 생성 p = new int[V]; // 각 원소의 부모를 자기 자신으로 초기화 for (int i = 0; i Kruskal 설명 (O(E log V))이전 단계에서 만들어진 신장 트리와는 상관없이 무조건 최소 간선만을 선택하는 방법 방법: 1. 그래프의 간선들을 가중치의 오름차순으로 정렬한다. 2. 정렬된 간선 리스트..
오늘 내용은 달달 외우기 ⭐ 1) 일반순열 (순서 o, 중복 x, O(n!) ) package 순조부;import java.util.Arrays;public class 주사위_일반순열 { static int totalCnt; //완성된 순열의 수 static int n;//주사위 던지는 횟수 static int[] results;//순열 결과를 저장할 배열 static boolean[] isSelected;//중복을 피하기 위해 첫 판에서 어떤 수를 뽑았는지 마크해 놓을 배열 public static void main(String[] args) { n=2; //2회 results=new int[n]; isSelected=new boolean[7];//0번 index는 쓰지 않고 1~6번 in..
알고리즘- 문제를 해결하기 위해 수행해야 하는 절차나 방법 APS (Algorithm Problem Solving)알고리즘 문제 풀이 알고리즘의 필요성예를 들어, 1부터 100까지의 합을 구하는 문제를 생각해 보자문제를 푸는 방식에 따라 작업량이나 소요시간 등이 달라질 수 있다 고려 사항1) 정확성 : 얼마나 정확하게 동작하는가2) 작업량 : 얼마나 적은 연산으로 원하는 결과를 얻어내는가3) 메모리 사용량 : 얼마나 적은 메모리를 사용하는가4) 단순성 : 다른 사람이 이해하기 쉬운가5) 최적성 : 더 이상 개선할 여지없이 최적화되었는가 알고리즘을 표현하는 두 가지 방법1) 의사코드 2)순서도시간복잡도 알고리즘의 효율성을 평가하는 지표중 하나실제 수행 시간이나 실행되는 명령문의 개수를 계산 빅오 표기법- ..
기준점 간 이동 배열 패턴배열이나 문자열과 같은 일련의 데이터를 입력하거나 특정 방식으로 연속적인 해당 데이터의 하위 집합을 찾는 경우에 유용하다. sliding window 접근법창문을 하나 만들어야 한다. 창문은 단일변수, 하위배열, 또는 필요한 경우 다른 문자열도 될 수 있다. 조건에 따라 창문을 이동시키며, 시작 위치에서 시작하면 보통 왼쪽에서 오른쪽으로 이동한다. 오른쪽에서 왼쪽으로 이동도 가능하고 가운데 위치에서 시작할 수 있다. 그러나 보통 창문을 왼쪽, 즉 요소의 시작 위치 또는 배열이나 문자열의 시작 위치에서 끝나는 위치로 이동한다. 규모가 큰 데이터셋에서 데이터의 하위 집합을 추척하는 문제에 유용하다.예시 문제정수의 배열과 n이라는 수를 받아들이는 maxSubarraySum이라는 함수..
빈도수 세기 패턴객체나 Set을 활용하여 값의 빈도나 횟수를 저장하는 방식이렇게 하면 중첩 반복문 없이도 시간 복잡도 O(N^2)를 피할 수 있다. 문제 두 개의 배열을 입력받는 same이라는 함수를 작성이 함수는 첫 번째 배열의 각 값이 두 번째 배열에서 제곱된 값으로 존재하는 경우에 true를 반환해야 합니다.값의 빈도도 동일해야 합니다.same([1,2,3], [4,1,9]) // truesame([1,2,3], [1,9]) // falsesame([1,2,1], [4,4,1]) // false (must be same frequency)내가 풀은 방법더보기function same(arr1, arr2) { // 배열 오름차순 정렬 arr1.sort((a, b) => a - b); arr2.so..
알고리즘이란?특정 작업을 달성하기 위한 과정이나 일련의 단계를 의미 실력 향상 방법문제 해결을 위한 계획 만들기(문제에 접근하는 방법, 문제를 세분화하기 위한 전략)일반적인 문제 패턴을 파악 문제 해결 전략문제 이해문제를 내 방식대로 다시 말할 수 있는가? 문제를 해결하기 위해 어떤 입력이 필요한가?문제를 해결하면 어떤 출력이 나와야 하는가?출력을 입력에서 결정할 수 있는가? 즉, 문제를 해결하기에 충분한 정보가 있는가? (이 질문은 문제를 해결하려는 과정에서야 답할 수 있을 수도 있지만, 지금 이 단계에서 이 질문을 고려하는 것도 여전히 중요하다.)중요한 데이터 요소들을 어떻게 라벨링해야 할까?구체적 예시를 알아보기간단한 예시로 시작더 복잡한 예시들로 진행빈 입력값이 있는 예제를 살펴보는것잘못된 입력..
🤓 선수 지식으로는 빅오 표기법의 개념이 필요하다.(빅오 표기법: https://recordoftheday.tistory.com/entry/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%B9%85%EC%98%A4%ED%91%9C%EA%B8%B0%EB%B2%95) 객체의 빅오 표기객체는 언제 사용하냐정렬의 필요가 없을때빠른 접근, 입력과 제거를 원할function addUpTo(n) { let total = 0; for (let i = 1; i 빅오의 객체 표기입력 - O(1)객체에 키와 값을 추가하는 빅오 표기제거 - O(1)객체의 키를 제거하기 위한 빅오 표기탐색 - O(n)접근 - O(1)객체의 키에 접근하기 위한 빅오 표기탐색은 희귀하지만, O(N)은 N에 따라서 ..