본문 바로가기 메뉴 바로가기

B_log

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

B_log

검색하기 폼
  • 분류 전체보기 (311)
    • 알고리즘 학습 (174)
      • 알고리즘 개념 (8)
      • 프로그래머스 (48)
      • Codility (12)
      • 백준 알고리즘 (62)
      • 파이썬 알고리즘 인터뷰 (13)
      • 삼성 SWEA (20)
      • 종만북 with 파이썬 (5)
      • with Swift (1)
    • iOS 앱개발 (66)
      • Swift Basic (14)
      • iOS (33)
      • WWDC (6)
      • 암호화폐 거래소 앱 프로젝트 (6)
      • Daum Cafe 검색 앱 프로젝트 (5)
      • Swift GuideLines (2)
    • Web (29)
      • 개념 학습 (3)
      • Python | Django (18)
      • 우아한테크코스 (2)
      • AWS (2)
      • Java Script (4)
    • SQL 학습 (4)
      • 프로그래머스 SQL 문제풀이 (4)
    • 개발 독서 (15)
    • 개발 정보 (4)
    • 회고 (2)
    • 주식 (0)
      • 주식 독서 (0)
    • 제품 구매 후기 (2)
    • 이런 저런 생각들 (0)
  • 방명록

전체 글 (311)
종만북 8장 [w/ Python]

동적 계획법( dynamic programming) - 문제를 잘게 쪼개 해결해 나가는 과정에서 반복되는 부분을 캐시에 저장하여 재사용하는 기법 - 분할정복과 문제를 작게 쪼깬다는 측면에서 공통점이 있지만 분할정복의 경우 부분문제들이 겹치지 않아 부분문제를 합병해 나가는 과정을 거치고 동적계획법은 반복되는 부분문제의 재연산을 피하기위해 캐시에 저장하는 메모이제이션(memoization)기법을 사용한다. - 참조적 투명성(referential transparency) : 함수의 반환 값이 그 입력 값만으로 결정되는지의 여부(전역변수, 입력 파일 등 함수 외부 요인에 의해 영향을 받지 않는 함수) - 메모이제이션은 참조적 투명 함수의 경우에만 적용할 수 있다. 입력이 같은데 외부 요소에 따라 다른 갑싱 반환..

알고리즘 학습/종만북 with 파이썬 2020. 8. 12. 12:04
종만북 7장 [w/ Python] - 분할정복 예제

- 가장 가까운 수 찾기 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 # 정렬된 n개의 숫자 중 정수 m과 가장 가까운 값 찾기 # 재귀 없이 풀이 def findNum(n, m): # 시작 인덱스와 끝 인덱스 start = 0 end = len(n)-1 while True: mid = (start+end)//2 # 중간 값이 타겟과 같을 때 출력 if n[mid] == m : return n[mid] # 종료 조건, 요소가 2개만 남았을 때 차이가 작은 것 출력 elif end - start ..

카테고리 없음 2020. 8. 11. 09:47
종만북 7장 [w/ Python]

분할 정복 - 주어진 문제를 둘 이상의 부분 문제로 나눈 뒤 각 문제에 대한 답을 재귀 호출을 이용해 계산하고, 각 부분 문제의 답으로부터 전체 문제의 답을 계산한다. 분할 정복이 일반적인 재귀 호출과 다른 점은 문제를 한 조각과 나머지 전체로 나누는 대신 거의 같은 크기의 부분 문제로 나누는 것이다. - 분할 정복의 세가지 구성 요소 1. 문제를 더 작은 문제로 분할하는 과정 (divide) 2. 각 문제에 대해 구한 답을 원래 문제에 대한 답으로 병합하는 과정 (merge) 3. 더이상 답을 분할하지 않고 곧장 풀 수 있는 매우 작은 문제 (base case) - sum(range(n)) 을 구할 경우 1+2+3+..+n을 구하는 연산은 O(N)의 시간 복잡도를 가진다. 분할 정복으로 해당 문제를 분..

알고리즘 학습/종만북 with 파이썬 2020. 8. 8. 17:56
종만북 6장 [w/ Python]

6.2 재귀 호출과 완전 탐색 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 # 6.2 재귀 호출과 완전 탐색 # 조건 : n>=1 # 1부터 n까지의 합을 반환 def sum(n) : ret = 0 for i in range(1, n): ret += i return ret # 재귀를 사용 def recursiveSum(n): # 기저조건을 생성 if n == 1 : return 1 return n + recursive(n-1) cs - 코드 6.2 n개의 원소 중 m개를 고르는 모든 조합을 찾는 알고리즘 책에 있는 C++ 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 void pick(int n, vector &picked, int topick)..

알고리즘 학습/종만북 with 파이썬 2020. 8. 8. 13:47
종만북 3장

3.2 좋은 코드를 짜기 위한 원칙 - 간결한 코드 작성하기 전역변수는 실제 프로그래밍에서는 프로그램의 흐름을 파악하기 어려워 대개 사용하지 않는 것이 좋지만 코테에서는 광범위하게 사용해도 된다. - 적극적으로 코드 재사용하기 같은 코드가 3번 이상 반복되면 코드를 모듈화하는 것이 좋다. - 표준 라이브러리 공부하기 표준 라이브러리 활용을 최대화 하지만 기본적인 배열, 스택, 큐, 리스트, 사전 등의 자료구조 그리고 정렬 등의 표준 알고리즘 구현법은 잘 알아둬야 한다. - 일관적이고 명료한 명명법 사용하기 모호한 명명법을 사용하지 말자. 의미를 이해할 수 있는 명명법을 사용하자 - 자료를 정규화해서 저장하기 시간대, 각도 등 여러가지 방식으로 표현 가능한 변수들의 정의를 한가지로 통일하여 정규화한다. -..

알고리즘 학습/종만북 with 파이썬 2020. 7. 31. 21:41
Linear 한 리스트에서 두 수의 합 찾기

- 문제 상황 : 주어진 리스트를 O(N)으로 순회하며 그 안에서 target - nums[i]의 꼴로 검색할 경우 O(N^2)의 순회가 되어 시간이 초과된다. - 해결책 : 먼저 O(NlogN)의 sort 함수를 사용해 nums를 정렬한 후, 인덱스의 시작점과 끝점을 주어 찾는 값이 target보다 작으면 앞쪽 인덱스를 증가시키고 더 크면 뒷쪽 인덱스를 감소시키는 방향으로 찾는다. - Check Point : 문제에서 주어진 상황이 답이 항상 존재하기 때문에 가능한 방식이다.

알고리즘 학습/알고리즘 개념 2020. 7. 26. 20:05
Codility - MissingInteger[Python]

😅 문제 문제 이미지 넣기 🤔 문제 상황 - 리스트에 존재하는 수를 제외한 자연수 중 최소값 찾기 🧐 해결 전략 - 1부터 시작해서 배열에 존재하면 1 증가시키고 없으면 반환하는 함수를 만들었다. ==> O(N**2) 의 시간이라 시간 초과가 뜬다. 66% - 다시 생각해서 만든 코드는 중복을 제거하며 정렬한 후에 조건에 맞게 구현하였다. ==> O(N) or O(N*(logN)) 🎰 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 def solution(A): setA = sorted(list(set(A))) idx = 0 for i in range(len(setA)): if setA[i] > 0: idx = i break setA = setA[idx:] start = 1 for ..

카테고리 없음 2020. 5. 14. 18:03
Codility - MaxCounters[Python]

😅 문제 https://app.codility.com/programmers/lessons/4-counting_elements/max_counters/ 🤔 문제 상황 - 조건에 따라 연산이 다르다. 🧐 해결 전략 - 🎰 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 def solution(N, A): ck = [0]*N mx = 0 for i in range(len(A)): if A[i] mx: mx = ck[A[i]-1] else : ck = [mx]*N # for j in range(N): # ck[j] = mx return ck cs https://colorscripter.com/ 🧙‍♂️ 해설 손글씨로 이미지 넣기 📈 새로 학습한 것 & 실수 - N+1 조건이 나올 때 else 조건 안..

카테고리 없음 2020. 5. 14. 15:10
이전 1 ··· 33 34 35 36 37 38 39 다음
이전 다음
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
  • Distinct#Codility#Python
  • 공유기 설치#BOJ#이분탐색#Python
  • N으로 표현#DP#Programmers#Python
  • PassingCars#Codility#Python
  • API#lazy#
  • NumberofDiscIntersections#Codility#Sort#Python
  • 날짜 계산#BOJ#완전탐색#Python
  • 리모컨#완전탐색#BOJ#Python
  • Brackets#Stacks and Queues#Codility#Python
  • 토마토#백준알고리즘#Python
  • Swift#Tuples#Range
  • 병든 나이트#BOJ#탐욕법#Python
  • 쿼드트리#BOJ#분할정복#Python
  • 텀 프로젝트#백준알고리즘#Python
  • 종이자르기#분할정복#BOJ#Python
  • 순열사이클#BOJ#Python
  • 반복수열#백준알고리즘#Python
  • 랜선자르기#이분탐색#BOJ#Python
  • Triangle#Sorting#Codility#Python
  • 미로 탐색#백준알고리즘#Python
  • 백준 알고리즘#BackTracking
  • django#slicing
  • 나무자르기#BOJ#이분탐색#Python
  • django
  • 터틀비치#리콘#xbox#controller
  • 암호코드#dp#BOJ#Python
  • filter#isalnum#lower
  • 파이썬알고리즘인터뷰#4장
  • 배열합치기#분할정복#BOJ#Python
  • 섬의개수#백준알고리즘#Python
more
«   2025/11   »
일 월 화 수 목 금 토
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
글 보관함

Blog is powered by Tistory / Designed by Tistory

티스토리툴바