분류 전체보기 123

[Algorithm & Data Structure] Stack(스택) 자료 구조

스택 자료 구조 ? : 스택 자료 구조는 먼저 들어온 데이터가 나중에 나가는 형식의 자료 구조이다. 스택은 입구와 출구가 같은 형태로서, 아래와 같이 시각화 할 수 있다. 스택 자료 구조의 동작은 선입후출이기 때문에, 나중에 삽입된 데이터 부터 삭제되는 것을 아래의 예시에서 볼 수 있다. 이를 바탕으로 python 코드로 구현한 그림이다.

[Algorithm & Data Structure] Queue(큐) 자료 구조

큐 자료 구조? : 큐 자료 구조는 먼저 들어온 데이터가 먼저 나가는 형식의 자료 구조이다. 큐는 입구와 출구가 모두 뚫려 있는 터널 같은 형태로서, 아래와 같이 시각화할 수 있다. 큐 자료 구조의 동작은 선입선출이기 때문에, 먼저 삽입된 데이터부터 삭제되는 것을 아래의 예시에서 볼 수 있다. 이를 바탕으로 python 코드로 구현한 그림이다. from collections import deque; # 큐(queue) 구현을 위해 deque 라이브러리 사용 queue = deque() # 삽입(1) - 삽입(3) - 삭제() - 삽입(2) queue.append(1) queue.append(3) queue.popleft() queue.append(2) # 먼저 들어온 순서대로 출력 print(queue)..

[python] list.sort() 와 sorted(list)의 차이

1. 공통점 : 리스트를 둘 다 오름 차순 또는 내림 차순으로 정렬해준다. 2. 차이점 1) list.sort() 원본 리스트를 정렬하고, print 시 반환 값은 None이다 원본 리스트의 순서를 변경한다. (원본 리스트에 영향이 있다) sorted(list) 보다 작동 속도가 빠르다. 예시) 만약, 내림 차순으로 정렬하고 싶다면, sort(reverse = False)를 넣어주면 된다. 2) sorted(list) 정렬된 새로운 리스트를 반환한다. (원본 리스트에는 영향이 없다) 모든 iterable에 동작한다. (list, tuple, dict, 문자열 등 예시)

Tech/Python 2020.12.15

[Algorithm] 구현 알고리즘 (Implementation)

1. 구현 알고리즘 간단하게 말해서, 풀이를 떠올리는 것은 쉽지만 코드로 구현하기 어려운 문제의 유형을 말한다. 일반적으로 알고리즘 문제에서의 2차원 공간은 행렬(Matrix)의 의미로 사용되는데, 시뮬레이션 및 완전 탐색 문제에서 2차원 공간에서의 방향벡터가 자주 활용된다. 2. 구현 알고리즘 출제 유형 알고리즘은 간단한데 코드가 지나치게 길어지는 문제 실수 연산을 다루고, 특정 소수점 자리까지 출력해야 하는 문제 문자열을 특정한 기준에 따라 처리해야 하는 문제 적절한 라이브러리를 찾아서 사용해야 하는 문제 2. 구현 해법 및 연습 문제를 풀어나갈 수 있는지 생각한다. 이를 코드로 구현하는 과정을 단계로 나누어서 정리한다. (주석으로 정리) 단계별로 하나씩 차근차근 코드를 작성한다. 문제를 접했을 때 ..

[python] 자료형 - 사전 자료형

1. 사전 자료형? 사전 자료형은 키(key)와 값(value)의 쌍을 데이터로 가지는 자료형이다. 키(key)는 튜플처럼 변경 불가능(immutable) 하고 유일한 값을 가진다. 값(value)는 리스트처럼 변경 가능하다. 2. 사전 자료형의 생성 {Key : Value} 를 콜론(:)으로 구분해서 쌍을 이루어주며, 다수 개의 {Key:Value}를 하나의 사전에 묶으려면 콤마(,)로 구분해서 이어주고 중괄호({ }, curly braces) 로 싸주면 된다. 먼저 { } 로 빈 사전 자료를 만들어놓은 다음에 dict[Key] = 'Value' 방식으로 하나씩 추가해나가는 방법도 있다. 3. 사전 자료형의 'key' 별 'value' 확인하기 형식 : dict[key]

카테고리 없음 2020.12.05

[Javascript] JSON?

JSON (Javascript Object Notation) : - 데이터를 저장하거나 전송할 때 주로 사용되는 경량의 Data 교환 형식을 뜻하고, Javascript에서 객체를 만들 때 사용하는 표현식을 의미한다. - JSON은 사람과 기계 모두 이해하기 쉽고, 용량이 작다는 장점을 지닌다. 하지만 JSON은 데이터 포맷일 뿐, 어떠한 통신 방법도, 프로그래밍 문법도 아니다. 단순히 데이터를 표시하는 표현 방법일 뿐이다. 1. JSON 특징 서버와 클라이언트 간의 교류에서 일반적으로 많이 사용된다. 자바스크립트 객체 표기법과 아주 유사하다. 자바스크립트를 이용하여 JSON 형식의 문서를 쉽게 자바스크립트 객체로 변환할 수 있는 이점이 있다. JSON 문서 형식은 자바스크립트 객체의 형식을 기반으로 만..

Tech/Javascript 2020.12.05

[Algorithm] 그리디 알고리즘(greedy)

1. 그리디 알고리즘? 그리디 알고리즘은 탐욕적으로 현재 상황에서 지금 당장 좋은 것만 고르는 방법을 의미한다. 문제를 해결하는 과정에서 그 순간순간마다 최적이라고 생각되는 결정을 하는 것이다. 일반적인 그리디 알고리즘은 문제를 풀기 위한 최소한의 아이디어를 떠올릴 수 있는 능력을 요구한다. 2. 그리디 해법? 그리디 해법은 정당성 분석이 중요하다. 단순히 가장 좋아 보이는 것을 반복적으로 선택해도 최적의 해를 구할 수 있는지 검토해보고 타당한 근거를 정리하는 연습을 할 필요가 있다. 따라서, 코딩 테스트에서는 탐욕 법으로 얻은 해가 최적의 해가 되는 상황에서, 이를 추론할 수 있어야 풀리도록 출제된다.

[python] 자료형 - 튜플 자료형

1. 튜플 자료형은 리스트와 유사하지만 문법적 차이가 있다. 튜플은 한번 선언된 값을 변경할 수 없다. 추가, 수정, 삭제가 모두 불가능하다. 아래의 그림은 리스트와 튜플에서 담긴 내용을 변경하는 것을 시도해본 것이다. 그 결과 터미널 상에서 리스트와 튜플을 비교해봤을 때, 리스트는 정상적으로 실행되었고, 튜플은 TypeError: 'tuple' object does not support item assignment 오류가 발생되는 것을 볼 수 있다. 2. 튜플은 사전형의 key 값(해쉬 값)으로 사용할 수 있다. 반면, 리스트는 불가능하다. 3. 튜플은 리스트 보다 차지하는 메모리가 적다. 아래를 보면 리스트는 64, 튜플은 48을 차지하는 것을 볼 수 있다. 4. 튜플의 실행시간은 리스트의 실행시간 ..

Tech/Python 2020.09.24

[python] 자료형 - 문자열 자료형

문자열 자료형 1. 문자열 변수 초기화 1) 큰따옴표(“)나 작은 따옴표(‘’)를 이용한다. 2) 문자열 안에 큰따옴표나 작은따옴표가 포함되어야 하는 경우가 있다. (1) 전체 문자열을 큰따옴표로 구성하는 경우, 내부적에 작은따옴표를 포함할 수 있다. (2) 전체 문자열을 작은따옴표로 구성하는 경우, 내부에 큰따옴표를 포함할 수 있다. (3) 백슬래시(\)를 사용하면, 큰따옴표나 작은따옴표를 원하는 만큼 포함시킬 수 있다. 2. 문자열 연산 1) 문자열 변수에 덧셈을 이용하면 문자열이 연결 된다. 2) 문자열 변수를 특정한 양의 정수와 곱하는 경우, 문자열이 그 값만큼 여러 번 더해진다. 3) 문자열도 인덱싱과 슬라이싱을 이용할 수 있다.

Tech/Python 2020.09.24