알고리즘 분석 | 스택 | 후위 표기법(Postfix notation) | 역 폴란드 표기법
·
Algorithm
이전포스팅 알고리즘 분석(Algorithm Analysis) | 개념 | 임의 접근 머신 | 원시 연산 알고리즘 기본 개념 알고리즘이란 정해진 시간 동안 어떠한 문제를 해결하기 위한 순차적인 단계입니다 "0개 이상의 인풋을 넣었을 때 1 이상의 값을 도출해 내는 방법이나 과정" 내비게이션 - ro jelong.tistory.com 이전 포스팅 리뷰 알고리즘의 실제 실행 시간을 평가하는 것은 어려울 수 있습니다. 이는 입력 크기, CPU 주파수, 사용 가능한 RAM, 데이터 전송 속도 및 자원을 선점하는 프로그램 등의 여러 요인으로 인해 어려워집니다. 그러나 데이터의 크기가 종종 알고리즘 실행 시간을 결정하는 가장 중요한 요소입니다 알고리즘의 시간 복잡도를 정의하기 위해 성장률과 점근적 표기법과 같은 기술..
자바Java | Hailstone Sequence | Java 기초 문제
·
Java
우박수 (Hailstone Sequence) 이란 우박수 수열이란 만약 Hailstone()함수에 어떠한 수 n을 대입했을때, \( n ㅡ> n/2 \) (n이 짝수) \( n ㅡ> 3n+1 \) (n이 홀수) if \( n = 5 \), 출력 : [5, 16, 8, 4, 2, 1] 라는 과정을 통해 결국에는 마지막 숫자는 1이 된다는 추측입니다 우박수 수열을 콜라츠 추측(Collatz Conjecture)이라고도 합니다 이와같은 우박수 수열을 코드로 나타낸다면 아래와 같을 것 입니다 public static void main(String[] args) { int n = 5; while (n != 1) { System.out.println(n); if (n % 2 == 0) { n = n/2; } els..
알고리즘 분석 | 점근 표기법 | Big-O | - 2
·
Algorithm
점근 표기법(Asymptotic notation ) 점근 표기법은 알고리즘의 성능을 수학적으로 표기하는 방법입니다 점근 표기법을 사용하면 실행 시간에 영향을 미치는 주요 요인을 특징화할 수 있습니다 점근 표기법이 필요한 이유는 우리가 어떠한 프로그램 개발에서 Y라는 결과물을 위해서 코드(알고리즘)를 작성할 것입니다. 이때 다른 개발자가 내어놓은 \( 100000n + 100000 \)이라는 알고리즘이 있습니다. 이 과정에서 내가 작성한 \( 2n^2 + 1 \) 이라는 알고리즘과 비교할때, 어떤 것이 더 나은 알고리즘 인지 구분하기란 쉽지 않습니다. 이때 알고리즘의 계산 복잡성 증가양상을 단순화시켜서 우리가 아는 로그, 지수, 다항함수의 수식으로 표현하는 방법이 점근 표기법입니다 함수 증가율(Growth..
애자일 스크럼(Agile Scrum) 간단하게 이해하기
·
Software Engineering
애자일 스크럼(Agile Scrum)이란 애자일(Agile)은 하나의 방법론으로서 짧은 주기의 개발단계를 거치며 지속적으로 하나의 소프트웨어를 개발해 나가는 방법입니다. 스크럼은 이러한 팀이 애자일의 반복적인 개선에 집중할 수 있도록 가치, 역할, 지침의 틀을 제공하는 프레임 워크입니다. 스크럼은 특정 개발 언어나 방법에 얽매이지 않고 스프린트라는 작업 단위를 사용하며 어떤 프로젝트에도 사용이 가능한 프로세스 프레임워크입니다. 요구사항 정의서와 문제 정의서 우리가 End-Users, Customer 그리고 stakeholders에게 외주를 받게 됩니다. 그럼 외주를 요청한 고객과 만나 미팅을 가지고 그 자리에서 고객이 요청하는 요구사항 정의서와 문제 정의서를 문서로 작성하게 됩니다. Fig. 2 문제 정..