일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 알고리즘의 조건 5가지
- Tree
- java
- python
- 코딩테스트
- 코딩 테스트
- LV.1
- 태그
- 알고리즘의 조건
- Import
- Combination
- 트리
- 자료구조
- 큐
- 좋은 알고리즘
- html
- 파이썬
- 유한소수 판별하기
- 리스트
- 스택
- 유사코드
- 자바
- list
- import itertools
- itertools
- 과일 장수
- 알고리즘
- 알고리즘 표현
- 프로그래머스
- 들여쓰기로 표현한 트리
- Today
- Total
목록전체 글 (86)
인천의 자유인

알고리즘은 입력 크기가 아주 작을 경우엔 사실 효율성의 문제를 고려하지 않아도 된다. 그러나 많은 양의 데이터가 발생했을 경우에는 이야기가 달라진다. 그래서 이 알고리즘 수행시간을 분석하게 되는데 이때 점근적 분석을 한다. 증가율을 따졌을 때 보통 n, nlogn, n2,n3, 2n으로 표기하곤 한다.증가율을 그림으로 나타내보자.이렇게 비교가 된다. 처음에는 크게 차이나는것 같지 않지만 숫자가 크면 클 수록 차이가 어마무시하게 차이난다. 그러나 예를 들어 알고리즘 복잡도를 표현할 때에 10n2같은 경우는 n2과 같은 취급 한다. 왜냐하면 처음에는 많이 차이나는 것같아도 n이 커지면 커질 수록 앞의 계수가 두 함수의 차이에 주는 영향이 적기 때문이다.그러면 이제 알고리즘에서 매우 중요하기 쓰이는 3가지 표..

목차저자 소개왜 읽어야 하는가? 1.저자소개 이 책을 소개하기 앞서 저자에 대해 간단히 소개하고자 한다. 김민호 목사님은 인천 검단 오류지역에서 회복의 교회를 담임하고 있다. 또한 카도쉬 아카데미 자문위원으로 사역하고 있다. 그리고 회복의 교회 유튜브를 통해 많은 사람들에게 선한 영향력을 주고 있다. 저서로는 , , 등 여러가지가 있다. 여러 저서 중 특히 은 베스트 셀러책이며, 1만권 이상 팔릴 정도로 많은 사람들의 관심을 받고 있다. 2.왜 읽어야 하는가? 이 책은 성령에 대한 책이다. 성령은 요한계시록 다음으로 이단들이 나오기 쉬운 영역이다. 성령을 잘못 이해하면 신비주의에 빠지거나, 혹은 그것에 질려서 아예 신비를 믿지 않는 극단으로 가기도 한다. 이런 현상에 빠지지 않으려면 성령에 대한 바른 이..

나의 문제 풀이import itertools def solution(nums): a = list(itertools.combinations(nums,3)) answer = 0 for i in a: i = sum(i) count = 0 for j in range(2, int(i/2)+1): if i%j == 0: break count +=1 if count == int(i/2)-1: answer+=1 return answer 먼저 import itertools은 제가 정리한 글이 있으니 잘 모르신다면 보고 오시는 것을 추천드립니다. https://y01112.tistory.com/87 itertools.combinations(nums,3)을 하면 중복되지 않게 3개를 뽑을 수 있습니다. 이것을 한 뒤에는 바..

원래 일반적으로 순열과 조합을 구하기 위해서는 중첩 for문을 사용했어야 합니다. 적은 리스트일 경우에는 문제가 없지만 큰 수일 경우에는 문제가 생깁니다. 예를 들어 코딩테스트를 연습했을때에 시간 초과가 일어나는 것이죠. 그러한 의미에서 이번에 ptyhon의 itertools를 이용해서 for문 없이 순열과 조합을 구하는 방법에 대해 알아보고자 합니다. 순열(perminutation)순열이란 로 다른 n 개 중 r 개를 골라 순서를 고려해 나열한 경우의 수를 말합니다.(출처: 순열 (naver.com))순열을 구하는 방식은 다음과 같습니다. itertools.permutations(리스트명, 고를 개수)예제를 통해 알아봅시다. import itertools data = [4,2,3,3,1] a = ite..

먼저 이미지의 출처는 위키백과에서 가져왔음을 말씀드립니다. 출처 : https://ko.wikipedia.org/wiki/%EC%9E%90%EC%97%B0 자연 - 위키백과, 우리 모두의 백과사전위키백과, 우리 모두의 백과사전. 자연계는 여기로 연결됩니다. 학문에 대해서는 자연 계열 문서를 참고하십시오. 라플란드, 핀란드의 겨울 풍경 자연을 한자로 표기한 것 자연(自然, 영어: Natureko.wikipedia.org 이미지 두개를 다운로드를 받고 하나는 Nature1 또 다른 하나는 Nature2를 만들었다. 두 이미지의 위치는 다음과 같다.Nature1이 html과 같은 폴더안에 들어가 있고 Nature2가 html폴더의 상위 폴더인 frontend에 들어가 있습니다. 기본 형태html의 기본형태는 ..

알고리즘은 문제 해결 과정을 일련의 순서대로 철자화 합니다. 이러한 알고리즘을 표현하는 방법에는 크게 자연어 표현, 흐름도(순서도) 표현, 의사코드 표현이 있습니다. 1. 자연어 표현자연어는 우리가 일반적으로 사용하는 언어를 의미합니다. 그만큼 편리하다는 장점이 있지만 단점도 있습니다. 그것은 문자의 의미가 에매해질 수 있다는 것입니다. 그래서 사용되는 단어들의 의미를 명확하게 해야할 필요가 있습니다. 모호한 표현 같은 경우를 주의해서 써야합니다. 예를 들면 '적당히'라는 의미를 예를 들수 있겠네요. 의사코드를 잘 사용한 예를 보여주겠습니다.최댓값을 구하는 알고리즘입니다.빈 리스트 lst를 선언합니다.빈 리스트에다가 자신이 추가하고 싶은 요소를 추가합니다.리스트 lst안에서 최댓값을 구합니다. 2. 유..
알고리즘의 정의와 조건을 아주 간단하게 정리해보겠습니다.1. 알고리즘이란?알고리즘이란 무엇일까요? 알고리즘은 주어진 문제를 해결하기 위한 단계적인 절차를 말합니다.컴퓨터에선 어떤 일을 하는 절차를 표현하기 위해 명령어들을 사용하는데, 결국 알고리즘은 특정한 일을 수행하는 명령어들의 집합이라고 할 수 있습니다. 이 명령어의 범위는 파이썬, 자바, C언어 등 모든 프로그래밍 언어의 명령어들이 포함됩니다.우리가 평소에 사용하는 프로그램은 프로그래밍 언어를 이용해 알고리즘을 코드로 변환하는 것을 의미합니다.2. 알고리즘의 조건프로그래밍을 위해 작성된 모든 명령어들의 집합이 모두 알고리즘을 뜻하진 않습니다. 알고리즘의 조건을 만족하기 위한 5가지가 있습니다.입력: 모호하지 않고 잘 정의된 입력출력: 명호가히 정의..

트리를 표현하는 방법은 3가지가 있습니다.중첩된 집합, 괄호, 트리로 표현을 할 수 있습니다.아래 이미지를 빗대어서 설명해 보겠습니다.1. 중첩된 집합트리는 중첩된 집합으로도 나타낼 수 있습니다. 위의 트리를 집합으로 나타내보겠습니다.2. 중첩된 괄호트리의 루트와 서브 트리를 중첩된 괄호로 묶어 표현하는 방법이 있습니다. A가 루트고 자식트리가 B,C,D라면 이렇게 표현할 수 있습니다. 구현하게 되면 (A (B) (C) (D))로 나오게 됩니다.자 그러면 마지막으로 위의 트리를 중첩된 괄호로 표현하게 되면 어떻게 나오는지 보겠습니다.A의 자식노드는 B,C,D가 있습니다. 그리고 B는 E,F,G라는 자식노드가 있으며, C는 H라는 자식 노드가 있고 D는 I,J가 있습니다. 그렇기 때문에 최종적이 결과는 이..

본문트리란?트리와 관련 용어트리란?트리는 이름처럼 나무를 닮으 자료구조다. 나무의 뿌리처럼 한 나무에서서 가지들이 뻗어나와서 분기되는 모습을 보입니다. 이러한 트리 구조는 계층적인 관계를 가진 자료의 표현에서 유용하게 사용됩니다. 트리는 효율적인 탐색을 위해서도 유용합니다. 큐를 효율적으로 구현하기 위해 트리가 사용되기도 합니다.트리와 관련 용어트리에서 각각의 요소를 노드라고 합니다. 노드와 노드의 연결 관계는 간선 또는 에지로 나타냅니다. 그리고 노드 중에서 가장 높은 곳에 있는 노드를 루트 노드라고 불립니다.추가로 노드 관련 용어를 보겠습니다.부모 노드: 간선으로 직접 연결된 상위 노드자식 노드: 간선으로 직접 연결된 하위 노드형제 노드: 같은 부모 노드를 가진 노드조상 노드: 어떤 노드에서 루트 노..

1. 배열 구조와 연결된 구조 리스트는 배열 구조와 연결된 구조로 구현할 수 있습니다. 먼저 배열 구조인 경우 중간에 빈자리가 없어야 하며 반드시 메모리의 연속된 공간에 저장되어야 합니다. 이 점 때문에 원하는 위치의 요소를 빠르게 참조하고 관리할 수 있습니다. 연결된 구조인 경우는 요소들이 메모리의 여기저기 흩어져서 저장이 됩니다. 이 요소들을 관리하기 위해 링크를 사용해야 한다. 자료들을 링크를 통해 일렬로 나열할 수 있는 연결된 구조를 연결리스트라고 합니다. 연결된 구조에는 노드라는 것이 있는데 이 노드에 데이터와 링크가 저장됩니다.2. 비교해 보기 연결된 구조와 배열 구조는 여러 차이점이 있습니다. 그 점을 비교해 봅시다. 1. 리스트 요소들에 대한 접근 배열 구조는 모든 요소듸 크기가 같고 연..