아무튼 개발
article thumbnail
[자료구조 · 알고리즘] 연결 리스트 (Linked Lists)
Algorithms 2022. 7. 6. 16:06

어서와! 자료구조와 알고리즘은 처음이지? 강의 수강 후 내용을 정리한 글입니다. 자료 구조 정의 Node - Data - Link (next) Head : 리스트의 맨 앞 요소 Tail : 리스트의 맨 끝 요소 of nodes : 연결리스트의 노드 갯수 연결 리스트의 각 원소들이 링크로 연결되어 있다. 배열은 인덱스로 지정되어 있지만 연결 리스트는 임의의 위치에서 연결할 수 있다. 물론 앞에서부터 하나하나 따라가다 보니 선형 탐색과 유사한 점이 있다. 하지만 선형 배열과 비교했을 때, 연결 리스트는 원소 가운데를 끊어 처리할 수 있기 때문에 원소 삽입 또는 삭제가 더 간단하다. 다만 저장 공간(메모리)의 소요가 더 크기 때문에 단점도 존재한다. 연산 정의 특정 원소 참조 (k번째) / 리스트 순회 / 길..

article thumbnail
[자료구조 · 알고리즘] 알고리즘의 복잡도 (Complexity of Algorithms)
Algorithms 2022. 7. 4. 12:50

어서와! 자료구조와 알고리즘은 처음이지? 강의 수강 후 내용을 정리한 글입니다. 알고리즘의 복잡도란 문제를 해결하는 데에 있어서 얼마만큼의 자원을 요구하는 가를 파악하는 것이다. 크게 시간 복잡도와 공간 복잡도로 나눌 수 있다. 시간 복잡도 (Time Complexity) 문제의 크기와 이를 해결하는 데 걸리는 시간간의 관계이다. 문제 해결을 위해 입력(input)으로 들어오는 것을 문제의 크기라고 말한다. 평균 시간 복잡도 데이터 입력이 랜덤하게 들어왔을 때, 즉 임의의 입력 패턴을 가정했을 때 걸리는 시간의 평균 최악 시간 복잡도 가장 긴 시간을 소요하게 만드는 입력에 따라 걸리는 시간 (최악의 경우) 공간 복잡도 (Space Complexity) 문제의 크기와 이를 해결하는 데 필요한 메모리 공간 ..

article thumbnail
[자료구조 · 알고리즘] 재귀 알고리즘 (Recursive Algorithms)
Algorithms 2022. 7. 3. 20:26

어서와! 자료구조와 알고리즘은 처음이지? 강의 수강 후 내용을 정리한 글입니다. 재귀 함수 (recursive functions) 재귀 함수란 하나의 함수에서 자신을 다시 호출하여 작업을 수행하는 것을 의미한다. 같은 알고리즘을 반복적으로 적용하여 풀어낸다. 구글에 Recursive를 검색하면 '이것을 찾으셨나요?'라며 또다시 나온다. 이 역시 재귀를 표현한 구글의 유머 감각이다. (방심하고 봤다가 빵 터짐..) 종결 조건 (trivial case) 재귀 함수를 사용할 때에는 알고리즘의 종결 조건이 필요하다. 조건이 없다면 계속해서 무한히 반복하기 때문이다. def sum(n): if n..: ... else: ...sum(..).. 예제 - n! (팩토리얼) def what(n): if n

article thumbnail
[자료구조 · 알고리즘] 정렬과 탐색 (Sort & Search)
Algorithms 2022. 7. 3. 14:35

어서와! 자료구조와 알고리즘은 처음이지? 강의 수강 후 내용을 정리한 글입니다. 정렬 (Sort) 정렬이란, 배열에 있는 원소들을 조건에 따라 정렬한다는 것을 의미한다. 파이썬에서 문자열로 이루어진 리스트를 정렬할 경우, 문자열은 사전 순서를 따르며 길이가 길다고 해서 큰 것이 아니라는 점을 주의해야 한다. 파이썬에서의 리스트 정렬 방법은 2가지가 있다. sorted() 파이썬의 내장 함수 (built-in function) '새로운' 정렬 리스트를 만듦 sort() 리스트의 method 단순히 해당 리스트를 정렬함 L = [3, 8, 2, 7, 6, 10, 9] L2 = sorted(L) L.sort() 역순으로 정렬 reverse=True를 입력함으로써 파이썬의 리스트를 역순으로 정렬한다. 탐색 (S..

article thumbnail
[자료구조 · 알고리즘] 선형 배열 (Linear Arrays)
Algorithms 2022. 7. 2. 22:50

어서와! 자료구조와 알고리즘은 처음이지? 강의 수강 후 내용을 정리한 글입니다. 선형 배열 (Linear Array)은 데이터들이 선(=line)처럼 일렬로 늘어선 형태이다. 자바, C에서 볼 수 있듯이 같은 종류의 데이터가 담긴 '배열'과 다르게, 파이썬에서의 리스트는 각 원소가 서로 다른 데이터 타입을 가지고 있어도 된다. 문자열의 경우, 문자열 길이가 다른 것 역시 상관없다. 리스트 길이와 관계없이 빠른 결과 시간 L = ['Bob', 'Cat', 'Spam', 'Programmers'] L.append('New') L.pop() 먼저 리스트 L을 선언하였다. append는 리스트의 가장 마지막 인덱스에 원소를 추가한다. pop은 마지막 인덱스에서 요소를 꺼낸다. append와 pop 모두 가장 마..

article thumbnail
[Python] 문자열 포맷 방법 - %, format, f-string
Python 2022. 6. 30. 11:30

출력을 할 때에는 한 문장에 많은 변수를 담기도, 여러 자료형의 문자를 담아야 할 때가 있다. 이를 위해 파이썬에서는 %와 format 그리고 f-string과 같은 다양한 방법으로 표현할 수 있다. 그럼 지금 각각의 사용법을 알아보겠다! % % 뒤에 표현하고자 하는 자료형을 입력해준다. %d : 정수 %s : 문자열 혹은 정수 %c : charter (1글자) %f : 실수(float) print('지금은 %d시' % 9) print('나는 %s이다' % 'Python') print('지금의 온도는 %.1f' % 25.653) print('이것은 %s색과 %s색이다' % ('핑크', '보라')) 지금은 9시 나는 Python이다 지금의 온도는 25.7 이것은 핑크색과 보라색이다 특히 %f의 경우에 실수..

article thumbnail
[Python] print 함수의 문자열 출력 방법
Python 2022. 6. 29. 21:55

Python에서 print 함수를 통해 출력할 수 있다. 문자열을 출력하기 위한 기본적인 방법에 대해 살펴보겠다! 기본 '', sep, end print('hello world!') → hello world! print('hello', 'world', '!' sep=' ') -> helllo world ! print('hello', end='~') print('world') -> hello~ world print()에 출력할 내용을 적어주며, 예시를 위해 'hello world'라는 문자를 활용하였다. 문자열의 경우 따옴표를 사용한다. 작은따옴표(') or 큰 따옴표 (") 모두 상관없다. 띄어쓰기도 당연히 포함되어 출력된다. sep은 입력한 여러 출력 대상들 사이에 구분자를 넣기 위해 사용된다. 현재 ..

article thumbnail
[CodeUp] 코드업 Python 기초 100제 후기 🖐
Developer/회고 2022. 6. 24. 17:54

CodeUp으로 코드업! 드디어 코드업의 파이썬 기초 100제 문제 풀이를 끝냈다! 짝짝- 파이썬을 공부한 뒤, 코드업 문제를 통해 개념과 사용 방법을 익히기 위해 시작했다. 언제 다 풀지.. 라는 생각하다가 일단 시작하고 보자! 해서 차근차근 풀다 보니 어느새 모든 문제를 다 풀게 되었다. 난이도 초반에서 중반까지는 난이도가 어렵지 않았지만 마지막으로 갈수록 높아졌다. 특히 비트단위 부분과 리스트의 개념은 자바에서 제대로 접해보지 못했기 때문에 이번 기회에 파이썬을 통해 제대로 배울 수 있었다. 가끔씩은 자바로 풀어버리고 싶을 때도 있었다 ㅎ.ㅎ.. 물론 자바에 비해 파이썬이 훨씬 간결하게 코드를 작성할 수 있어 편리하다고 느끼긴 했다. 익숙하지 않았을 뿐이지! 문제풀이 문제를 풀면서 느낀 점은 정말 ..

article thumbnail
[CodeUp] Python 기초 100제 | 6098번 풀이
Python 2022. 6. 24. 09:47

코드업 파이썬 6098번 풀이입니다. 드디어 코드업의 마지막 문제 ✨ https://codeup.kr/problem.php?id=6098 [기초-리스트] 성실한 개미(py) python언어기초100제v1.0 : @컴퓨터과학사랑, 전국 정보(컴퓨터)교사 커뮤니티/연구회 - 학교 정보(컴퓨터)선생님들과 함께 수업/방과후학습/동아리활동 등을 통해 재미있게 배워보세요. - 모든 내용 codeup.kr 문제 영일이는 생명과학에 관심이 생겨 왕개미를 연구하고 있었다. 왕개미를 유심히 살펴보던 중 특별히 성실해 보이는 개미가 있었는데, 그 개미는 개미굴에서 나와 먹이까지 가장 빠른 길로 이동하는 것이었다. 개미는 오른쪽으로 움직이다가 벽을 만나면 아래쪽으로 움직여 가장 빠른 길로 움직였다. (오른쪽에 길이 나타나면 ..

profile on loading

Loading...