기본 정렬 (Sort)
·
코테/알고리즘
1. 버블 정렬(Bubble sort) 버블 정렬이란? 두 인접한 데이터의 크기를 비교해 정렬하는 방법이다. 시간 복잡도는 O(n^2)로 다른 정렬에 비해 느린 편이다. 버블 정렬 과정 비교 연산이 필요한 루프 범위 설정 인접한 데이터 값을 비교 swap 조건에 부합하면 swap 연산 수행 루프 범위가 끝날 때까지 2.~3. 반복 특정한 루프의 전체 영역에서 swap이 한 번도 발생하지 않았다는 것은 그 영역 뒤에 있는 데이터가 모두 정렬되었다는 뜻이다. 2. 선택 정렬(Selection sort) 선택 정렬이란? 최솟값 또는 최댓값을 찾고, 남은 정렬 부분의 가장 앞에 있는 데이터와 swap하는 방법이다. 시간복잡도는 O(n^2)으로 효율적이지 않다. 선택 정렬 과정 남은 정렬 부분에서 최솟값 또는 최..
문자열 조작(1 - 유효한 팰린드롬)
·
Python
이번 글에서 알아볼 내용은 정확히 말하면 기본문법이라고 보긴힘들다.(문제를 풀거니까)하지만 이 글 때문에 카테고리를 하나 더 만들기 번거로워서 그냥 이 카테고리에 쓰겠다. 팰린드롬이란 앞뒤가 똑같은 단어나 문장으로, 뒤집어도 같은 말이 되는 다넝 또는 문장을 뜻한다. 문제주어진 문자열이 팰린드롬인지 확인하라. 대소문자를 구분하지 않으며, 영문자와 숫자만을 대상으로 한다. ex1) 입력"A man, a plan, a canal : Panama"ex1) 출력trueex2) 입력"race a car"ex2) 출력false  [풀이 1] - 리스트 변환def isPalindrome(s: str) ->bool: strs = [] for char in s: if char.isalnum(): ..
딕셔너리(dict)
·
Python
딕셔너리는 저번 글에 써 쓰인 대로 python에서 굉장히 자주 쓰이는 자료형이다.기본적으로 키, 값으로 이뤄져 있으며 대부분의 연산이 O(1)에 처리할 수 있게 되어있어 매우 효율적이다.Python 3.6 이하에서는 입력 순서가 유지되지 않아 collections.OrderedDict()라는 별도의 자료형을 제공하였다.3.7+에서는 자동으로 입력 순서도 유지되지만 코딩 테스트에서는 3.6 이하의 버전도 번번이 사용되므로, 저런 자료형을 알고 시험에 들어가는 것이 좋다. 딕셔너리는 다음과 같이 선언한다.>>> a = dict()>>> a = {} 처음에 초깃값을 지정해 선언할 수도 있고 동적 자료형이기 때문에 나중에 추가하는 것도 가능하다.>>> a = {'key1':'value1', 'key2':'va..
리스트(list)
·
Python
Python에서 리스트(list)와 딕셔너리(dict)는 매우 빈번하게 자주 사용되는 자료형이다.따라서 알고리즘에 본격적으로 들어가기 전에 완벽히 이해하고 넘어가야 한다.이번 글에서는 리스트(list)에 대해 알아보겠다. 리스트는 동적 배열로 코딩 테스트에서 매우 빈번하게 자주 쓰이는 자료형 중 하나이다.특히나, 파이썬에서는 스택, 큐 등 다양한 구조를 제공하여 다른 언어들에 비해 유리한 조건을 가지고 있다.(값을 불러오는 것과 같은 간단한 연산은 조금씩 넘어가도록 하겠다.) 리스트는 다음과 같이 선언할 수 있다.#선언방법 1>>> a = list()#선언방법 2>>> a = [] 리스트는 위에서 말했듯이 동적 배열이기 때문에 중간에 요소를 추가하거나 없앨 수 있다. 삽입>>> a = [1, 2, 3]>..
Python 시작하기
·
Python
python을 시작하기 위해선 인터프리터인 CPython을 다운받아야한다. https://www.python.org/downloads/ Download PythonThe official home of the Python Programming Languagewww.python.org위의 링크로 들어가 Download버튼을 누르면 다운이 시작된다.버전은 최신버전일 수록 좋겠지만 코딩테스트같은 경우는 최신 파이썬에서 추가된 기능들을 쓸 수 없는 경우도 있으니 유의하자.   IDEL만 가지고는 복잡한 코드를 구현해 내기는 어렵다.그래서 개발도구가 필요한데, 나는 '파이썬 알고리즘 인터뷰'를 보면서 공부할 것이므로 책에서 추천하는 PyCharm을 설치했다. www.jetbrains.com/ko-kr/pycharm..