알고리즘

Algorithm/Theory

문제 해결 패턴 연습 문제

문제 1sameFrequency 라는 함수를 작성하세요. 두 개의 양의 정수가 주어졌을 때, 두 숫자의 자릿수가 같은 빈도를 갖는지 구합니다. 여러분의 솔루션은 반드시 다음과 같은 복잡성을 가져야 합니다. Time: O(N) 예시sameFrequency(182, 281); // truesameFrequency(34, 14); // falsesameFrequency(3589578, 5879385); // truesameFrequency(22, 222); // false  정답더보기function sameFrequency(num1, num2) { // 빈도수를 담아둘 객체 const frequency1 = {}; const frequency2 = {}; // string화 const str1 = n..

Algorithm/Theory

문제 해결 패턴

문제 해결 패턴 소개프로그래밍 문제를 효과적으로 해결하기 위해 다양한 문제 해결 패턴이 존재합니다. 이 글에서는 대표적인 문제 해결 패턴을 소개하고, 각 패턴에 대한 예시와 코드 리팩토링을 통해 성능을 개선하는 방법을 설명합니다. 빈도수 세기 패턴 (Frequency Counters)빈도수 세기 패턴은 값의 빈도를 수집하기 위해 객체나 집합을 사용하는 방법입니다. 이를 통해 배열이나 문자열에서 중첩 루프(O(N^2))를 사용하지 않고 효율적으로 문제를 해결할 수 있습니다. 예시 문제두 개의 배열을 입력으로 받는 same이라는 함수를 작성하세요.이 함수는 첫 번째 배열의 모든 값이 두 번째 배열에서 제곱된 값과 일치하면 true를 반환해야 합니다.값의 빈도수도 동일해야 합니다.same([1,2,3], [4..

Algorithm/Theory

문제 해결 접근법

목표알고리즘이 무엇인지 이해합니다.알고리즘을 해결할 계획을 세웁니다. 알고리즘이란?알고리즘은 특정 작업을 달성하기 위한 과정이나 일련의 단계를 의미합니다. 이는 컴퓨터 과학에서 매우 중요한 개념으로, 문제 해결의 기본입니다. 알고리즘을 알아야 하는 이유프로그래밍에서 수행하는 거의 모든 작업에는 기본적이든 복잡하든 일종의 알고리즘이 포함됩니다. 문제를 효율적으로 해결하기 위해서는 알고리즘을 이해하고 활용하는 능력이 필요합니다. 문제 해결을 위한 계획을 수립하기1단계: 문제를 이해하기문제를 이해하는 것은 첫 번째 단계입니다. 다음 질문들을 통해 문제를 명확히 할 수 있습니다.문제를 내 방식대로 생각할 수 있는가?문제가 어떤 입력값을 가지고 있는가?문제에 대한 해결책에서 나와야 하는 결과가 무엇인가?입력값이 ..

Algorithm/Theory

빅오 표기법 (Big-O Notation)

목표빅오 표기법의 필요성빅오 표기법이 무엇인지빅오 표기법의 간단한 표현법시간복잡도와 공간복잡도의 정의빅오 표기법을 이용한 알고리즘 표기법로그(log)가 무엇인지빅오 표기법의 필요성어떤 문제를 해결하는 두 가지 방법이 있을 때, 하나는 루프를 사용하고, 다른 하나는 리스트나 문자열을 사용하는 방법일 수 있습니다. 무엇이 더 나은지 알기 위해서는 빅오 표기법이 필요합니다. 빅오 표기법을 사용하면 코드를 일반화하고 비교하며 성능을 평가할 수 있는 시스템을 제공합니다. 예시1부터 N까지 모든 숫자를 더하는 함수를 예로 들어보겠습니다. // 첫 번째 방법: 루프 사용function addUpTo(n) { let total = 0; for (let i = 0; i 어떤 방법이 더 나을까요?어떤 것이 더 빠를까요..

얼은펭귄
'알고리즘' 태그의 글 목록