본문 바로가기

전체 글

경우의 수 경우의 수는 더하고 곱하고 빼고 나누는 사측연산을 통해 구할 수 있다.+ (더하기) A or B; 두 사건 A, B가 동시에 일어나지 않을 때, A의 경우의 수 +B의 경우의 수 윗옷 3개 중 1개를 골라 입는 경우의 수1 + 1 + 1 = 3 가지 * (곱하기) A and B; 두 사건 A, B가 동시에 일어날 때, A의 경우의 수 * B의 경우의 수 - 동시에 윗옷 3개와 바지 2개를 매치하는 경우의 수 ( 1 + 1 + 1 ) * ( 1 + 1 ) = 3 * 2 = 6 가지 - 연속해서a 에서 b를 거쳐 c로 가는 방법.a 에서 b로 가는 방법 2 가지 * b에서 c로 가는 방법 3 가지 ( 1 + 1 ) * ( 1 + 1 + 1 ) = 2 * 3 = 6 - (빼기)중복되는 경우의 수를 뺴준다.집합.. 더보기
코딩테스트에서 요구되는 시간복잡도 어림잡기 온라인 코딩 테스트에서는 제한시간내에 문제의 따른 정확한 값을 반환하는 프로그램을 작성해야한다. 제한시간내에 동작하는 프로그램을 작성하기 위해서 어떻게 해야할까? 컴파일러, 각 컴퓨터의 프로세서의 차이 등이 실행시간에 영향을 끼치겠지만, 컴퓨터는 평균적으로 10**8개의 연산을 1초이내에 수행할 수 있다. 이를 기준으로 시간제한과 주어진 데이터 크기 제한에 따른 시간복잡도를 예측하고 그것에 맞게 답안을 작성하는 편이 더 빠른 솔루션이 있지않을까 고민하는 것 보다 효율적이다. 데이터 크기 제한 예상되는 시간 복잡도 n 더보기
소프트 스킬 - 생산성 계획 ​분기별 계획 한 분기 안에 완료할 큰 프로젝트와 작은 몇가지 목표잡기. ​월간 계획 이전 데이터를 참고로 한갈 간 할 일을 어림잡아 측정. 분기별 계획을 보며 그 다음 달에 해야할 일도 확인인해 가면 계획한다. ​주간계획 매주 해야 할 일을 2시간 이하 작은 작업으로 쪼개서 리스트 리스트 만들고 분배하기. 각 작업에 필요한 뽀모도리 개수 예측해서 하루의 작업량 조절. ​​​​* 뽀모도리는 집중하는 시간 25분 간을 말한다. ​일간계획 앉아서 일정을 시작할 준비가 됐을때, 가장 먼저 하루를 계획한다. 카드의 적힌 작업을 내용과 완료기준을 명확히 해둔다.​​(운동하기 처럼 추상적으로 X. 걷기 1000보 처럼 구체적으로 O.) ​방해요소 제거 •핸드폰, 메일 등 메세지는 정해둔 시간에 일괄적으로 답장하기... 더보기
확률 vs 통계 ​ ​확률: what? 0- 1 사이의 숫자로 가능성의 크기를 나타낸 것 0: 절대로 발생하지 않는다. 1 : 항상 발생한다. why? 현상의 발생의 불확실성 때문. 정확히 예측할 수는 없지만 가능성을 말할 수 있을때 확률을 사용한다. ​통계: what? 실제 데이터를 수학적 확률값으로 모델링하는 것. why? 실제 데이터를 분석, 모델링-피팅-예측, 큰 데이터 셋을 요약하기 위해. 더보기
Asymptotic analysis, 점근적 표기법. 알고리즘의 성능을 분석하기위해 점근적 표기법을 이용해 시간복잡도 사용한다. 단순히 특정 입력 값에 따른 실행시간(running time)을 비교하는게 아니라, 입력값이 증가함에 따른 Running time의 rate of growth를 표현한 것이 시간 복잡도(time complexity)이다. ​ ​Big-theta Running time에 대한 점근적인 한계값을 Big theta라 한다. 즉, 알고리즘의 평균 시간복잡도를 말한다. ​Big-O 빅오는 running time에 대한 점근적인 상한값을 말한다. 즉, 알고리즘의 최악의 시간 복잡도이다. 보편적으로 ‘시간 복잡도’는 최악의 케이스를 커버하능 빅오를 말한다. ​Big-omega 빅 오메가는 running time에 대한 점근적인 하한값을 말한다.. 더보기
Binary search, 이진 탐색 리스트 A = [ 0, 1, ,2, 3 ] 이 있을 때, 마지막 원소인 '3'을 찾는다고 해보자. Simple search, 단순 탐색의 경우처음부터 순차적으로 원소 값을 확인한다. 마지막에 위치하고 있는 원소인 '3'을 찾기 위해서는 리스트의 길이와 같은 시간이 걸린다. 리스트의 길이와 같은시간을 O(n), linear time 선형시간 이라고 한다. Binary search, 이진 탐색은리스트의 중간에 있는 원소의 크기에 따라 탐색할 구간(range)를 반씩 줄여나가 O(log n), logarithm time 로그 시간이 걸리는 방식이다. 만약 100개의 원소를 가지고 있는 리스트라면 탐색할 구간이 100 에서 50, 25, 13, 7, 4, 2, 1 순으로 줄어든다. 따라서, A의 중간에 위치한 .. 더보기
데이터베이스(Data Base) 데이터 (Data) 관찰이나 측정을 통해 수집된 사실이나 값.수치나 스트링 등의 형태로 표현한다. 데이터베이스 (DB: Database) 한 조직의 여러 응용시스템이 공용하기 위해 최소의 중복으로 통합, 저장된 운영데이터의 집합. 통합(integrated) 원칙적으로는 똑같은 데이터가 중복되지 않는 것을 의미한다. 최소의 중복(Minimal Redundancy) / 통제된 중복 (Controlled Redundancy) 저장(stored) 컴퓨터가 접근할 수 있는 저장 매체에 저장된 데이터 운영(operational) 어떤 조직의 고유 기능 수행을 위한 데이터 공용(shared) 조직의 여러 응용 시스템들이 공동으로 생성, 유지, 이용하는 공동의 데이터 데이터베이스 시스템 (DBS: Database sy.. 더보기
완주하지 못한 선수 완주하지 못한 선수문제풀러가기 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다.completion의 길이는 participant의 길이보다 1 작습니다.참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다.참가자 중에는 동명이인이 있을 수 있습니다. def solution(participant, completion): answer = '' comp = completio.. 더보기