목록전체 글 (122)
기록
int func(int n) { if (n == 1) return 1; else if (n % 2 == 1) return n + func(n - 1); else return func(n / 2) * 2 + (n*n) / 4; } 1 + 2 + ... + n -> (1 + 2 + ... n/2) + ((n/2 + 1) + (n/2 + 2) + ... + (n/2 + n/2)) -> (1 + 2 + n/2) * 2 + (n/2 * n/2) // n/2가 n/2개 있음으로 뒤로 뺀다 따라서 n이 짝수일 때 f(n) = f(n/2)*2 + (n*n)/4 n이 홀수일 땐 f(n) = n + f(n-1) n이 1이면 1을 반환
char arr[1000005]; cin >> arr; char* temp = strtok(arr, "[,]"); while (temp) { D.push_back(int(temp - '0')); cout
이전에 나온 높이가 다음 높이를 볼 수 있다면 적재시키고 count 증가시키는데, 여기서 n번 전에 나온 높이는 그 다음에 나온 높이보다 높음으로 그 다음 높이를 당연히 볼 수 있으니 누적하여 count+=S.size()-1 한다. 다음에 나올 높이를 이전 높이가 못본다면, 볼 수 있는 높이가 나올 때까지 pop한다. (count에 들어가지 않기 위해) 관련 개념 : Monotone Stack
https://sallykim5087.tistory.com/167
재귀적 방식 def fibonacci(i): if i==0: return 0 elif i==1: return 1 else: return fibonacci(i-1)+fibonacci(i-2) for i in range(6): print(fibonacci(i)) DP fibo = [0 for i in range(100)] fibo[0] = 0 fibo[1] = 1 for i in range(0,10): if i==0: print('0') elif i==1: print('1') else: fibo[i] = fibo[i-1] + fibo[i-2] print(fibo[i])
장치관리자 - 디스플레이 어댑터 - Intel(R) UHD Graphics 630 - 드라이버 업데이트 - 컴퓨터에서 드라이브 소프트웨어 검색 - 컴퓨터의 사용가능한 드라이브 목록에서 직접 선택 - 설치할 드라이버에서 Intel(R) UHD Graphics 630 재설치
추상화 : 주어진 문제에서 현재의 관심사에 초점을 맞추기 위해, 특정한 목적과 관련된 필수 정보만 추출하여 강조하고 관련이 없는 세부 사항을 생략함으로써 본질적인 문제에 집중할 수 있도록 하는 작업 객체지향에서는 객체들의 공통점을 뽑아 클래스라는 이름을 붙여놓은 것이 추상화이다. 반대로, 클래스로부터 객체를 생성하는 과정을 인스턴스화라고 한다. 모듈화 : 선행 작업을 실제로 개발할 수 있는 작은 단위로 나누는 것 모듈 : 하나 또는 몇 개의 논리적 기능을 수행하기 위한 명령어들의 집합. 따라서 독립프로그램들도 하나의 모듈이 될 수 있고, 함수들도 하나의 모듈이 될 수 있다. - 다른 것들과 구별될 수 있는 독립적인 기능을 갖는 단위 - 유일한 이름 - 독립적 컴파일 가능 - 모듈에서 또 다른 모듈 호출 ..
애자일 : 처음 수집한 요구사항을 전체의 일부로 인정하고 시작하여 언제든지 추가요구사항이 있을 것으로 간주함. 따라서 추가요구사항을 수용할 수 있는 방법으로 설계 폭포수 : 요구사항분석이 완전히 종료된 후에 설계 단계로 넘어가므로, 새로운 요구사항을 추가하기가 어렵다. 추가 요구사항 반영이 어려운 구조 애자일 : 가능하면 자주, 빨리 제품에 대한 프로토타입을 만들어 사용자에게 보여준다. 이를 반복하여 최종제품 만들기에 자주 릴리즈된다. 폭포수 : 요구사항에 대한 분석, 설계, 구현과정이 끝나고 최종 완성된 제품을 릴리즈한다. 애자일 : 시작 단계에는 부족한 점이 많지만 점차 완성도가 높아진다. 폭포수 : 단계별 완성도를 최대한 높여 다음단계로 넘어가기 위해 시작 단계에서의 완성도가 매우 높다. 애자일 :..
앞서 진화적 프로토타입 모델의 대표적인 예가 나선형 모델이라 했다. 최종 프로토타입을 버리지 않고, 이를 개발하여 최종 완성시키는 진화적 프로토타입 모델 절차를 따른다. 위험 분석단계가 추가된 것이 특징임. 계획 및 요구분석 ㅡ 위험 분석 ㅡ 프로토타입 개발 ㅡ 사용자 평가 이 과정을 n차 반복 동안 사용자의 요구가 충분히 반영되어 만족할만한 최종 제품이 만들어진다. 위험 요소 : 소프트웨어 개발 과정이 순조롭게 진행되는 데 방해되는 모든 것을 말함 ex) 빈번하게 변경되는 요구사항, 팀원들 경험 부족, 결속력 떨어지는 팀워크, 플젝 관리 부재 등 프로토타입 모델과의 차별성 : 프로젝트 초기부터 실행 및 테스트가 가능한 시스템을 개발하여 지속적 확인 해야함 → 개발 과정 초기에 잠재적 실패 요인과 위험요..
선형 순차적 모델의 대표적인 방법이 폭포수 모델이였다면, 진화적 프로세스의 대표적인 방법은 프로토타입 모델이라고 할 수 있다. 폭포수 모델의 큰 단점인 "단계를 거슬러 작업하는 것이 어렵다"는 것을 보완하기 위해 나온 것이 바로 진화적 프로세스 모델이다. 프로토타입의 사전적 의미는 대량 생산에 앞서 미리 제작해보는 시제품으로, 제작물의 모형이라 할 수 있다. 모델을 만드는 것을 모델링이라 하듯, 프로토타입을 만드는 것을 프로토타이핑이라 한다. 계획 → 요구사항 정의 및 분석 [요구 수정 > 빠른 설계 > 프로토타입 개발 > 고객 평가 > 조정 > 구현] → 설계 → 구현 → 테스트 → 유지보수 이처럼 폭포수 모델을 기반으로 개발하면서 사용자의 요구를 충분히 반영하기 위해 프로토타입을 추가한 모델이다. 이..