본문 바로가기
  • 紹睿: 자유롭고 더불어 사는 가치있는 삶

Data/python·알고리즘39

[python 기초] python의 tuple에 대하여 TupleTuple은 ()를 통해 만들거나, ","를 이용하여 만들 수 있다. 123456789101112131415161718192021222324a = 1b = 1,print(type(a), a) # 1print(type(b), b) # (1,) c = 4 * (20+5)d = 4 * (20+5,)print(type(c), c) # 100print(type(d), d) # (25, 25, 25, 25) e = [1, 2, 3]f = tuple(e)print(type(e), e) # [1, 2, 3]print(type(f), f) # (1, 2, 3) print(list('hello')) # ['h', 'e', 'l', 'l', 'o']print(tuple('hello')) # ('h', 'e', 'l.. 2018. 6. 27.
[python 기초] python의 list에 대하여 데이터 구조데이터를 일정한 기준(규칙)에 의해 모아 놓은 것 collection of data elements, structured in some way- built-in + 확장- Container type의 데이터 구조1) Sequence = mapping by element position (index) ex) List, String2) mapping = mapping by element name (key) ex) Dictionary built-in Sequence (내장)1) List2) Tuple3) String4) Buffer objects5) Xrange objects Sequence에 대한 주요 작업1) Indexing: 위치 [0 1 2]2) Slicing: 범위 지정해서 추출3) Add.. 2018. 6. 27.
[python 기초] 데이터 타입과 변수 데이터 타입과 변수1. 기본(Built-in)데이터 타입1) 숫자- Integers- Floats- Complex numbers- Booleans2) List, Tuple- List: 일종의 array- Tuple: Immutable(값이 변할 수 없음)3) String4) Dictionary- Keys- values5) Sets: 집합6) File Objects: File을 만들거나, 오픈 등등 자원관리 예제1. 일반 Type 1234567891011121314151617print("Hello world!")print("안녕하세요")print(type(20))print(type("20"))print(""" 'Oh no', she said""")print(10/3)print((-3)**4) Hello w.. 2018. 6. 26.
[python 기초] python 개요와 설치 Python 개요와 설치배경 - 1990년 후반 Guido van Rossum 개발 (네덜란드)- 오픈소스 cross-platform:General Public License(GPL)- ABC, Modula-3, C, C++, Algol-68, SmallTalk, Unix shell 등을 기반으로 개발 특징- High-level 언어- Interpreted 언어- Interactive 언어- 객체지향 언어- Scripting 언어 종류- Python or CPython written in C/C++version 2.7version 3-Jython: java for the JVM-IronPython: in C# for the .Net environment 개발환경- Python Interactive She.. 2018. 6. 26.
[퀵 정렬] quick sort - python 출처:https://ko.wikipedia.org/wiki/%ED%80%B5_%EC%A0%95%EB%A0%AC Quick Sort시간복잡도: 최악 - O(n2), 평균 -O(n log n) 퀵 정렬(quick sort)은 비교 정렬, 불안정 정렬에 속한다. 분할 정복 방법을 통해 리스트를 정렬한다. 1. 리스트 가운데에서 하나의 원소를 고른다. (pivot) 2. 분할: pivot 앞에는 pivot보다 작은 값 pivot 뒤에는 큰 값의 원소들이 오도록 pivot을 기준으로 리스트를 둘로 나눈다. 3. 분할된 리스트는 재귀적으로 반복하여 리스트의 크기가 0이나 1이 될 때까지 반복한다. 123456789101112def quick_sort(x): if len(x) 2018. 6. 19.
[백준 알고리즘] 1181번 단어 정렬 문제알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오.길이가 짧은 것부터길이가 같으면 사전 순으로 입력 첫째 줄에 단어의 개수 N이 주어진다. (1≤N≤20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. 이문제를 풀기위해.....ㅠ merge sorting을 이용했다. 시간제한이 2초이기 때문에.... 1. 중복된 단어는 뺀다. 2. 글자수가 같으면 알파벳 순서이기 때문에 미리 sort를 해서 정렬해준다. 3. sorting을 단어 길이로 해주자. 꿀 1234567891011121314151617181920212223242526272829303132333.. 2018. 6. 19.