Python 썸네일형 리스트형 웹 프로그래밍 이해하기 1. 웹 프로그래밍이란? 간단히는 HTTP(S) 프로토콜로 통신하는 클라이언트와 서버를 개발하는 것 (보통은 웹 서버를 개발하는 경우가 많기에 Django와 같은 웹 프레임워크로 웹 서버 개발하는 것을 떠올린다.) 예를 들면, 웹 브라우저를 실행해 네이버에 접속하는 것이 바로 웹 프로그램이 동작하는 것이다. 이 경우 [웹 브라우저 = 웹 클라이언트, 네이버 서버 = 웹 서버] 이다. 대표적인 웹 브라우저는 Chrome, Internet Explorer, Firefox 등이 있다. 2. HTTP 프로토콜 2.1 HTTP 프로토콜의 정의 HTTP (Hypertext Transfer Protocol) : 웹 서버와 웹 클라이언트 사이에서 데이터를 주고받기 위해 사용하는 통신 방식 HTTP란 이름대로라면 hyp.. 더보기 [Python] Linked List (2) Problem 14. Merge Two Sorted Lists https://leetcode.com/problems/merge-two-sorted-lists/ Solution 1. 재귀 구조 def merge_two_lists(self, l1: ListNode, l2: ListNode) -> ListNode: if (not l1) or (l2 and l1.val > l2.val): l1,l2 = l2,l1 if l1: l1.next = self.mergeTwoLists(l1.next, l2) return l1 Problem 15. Reverse Linked Lists https://leetcode.com/problems/reverse-linked-list/ Solution 1. 재귀 구조 def reve.. 더보기 [Python] Linked List (1) # typing hint 입력을 위한 라이브러리 호출 import typing Problem 13. Palindrome Linked List https://leetcode.com/problems/palindrome-linked-list/ 실행시간 비교 풀이 방식 Big-O 실행시간 순위 1 리스트 변환 O(n) 2위 2 데크를 이용한 최적화 O(n) 1위 Solution 1. 리스트 변환 class ListNode: def __init__(self, val=0, next=None): self.val = val self.next = next def isPalindrome_1(head: ListNode) -> bool: q: List = [] if not head: return True node = head.. 더보기 [Python] Array (2) In [1]: from typing import List, Set, Dict, Tuple Problem 9. 3Sum https://leetcode.com/problems/3sum/ 실행시간 비교 풀이 방식 Big-O 실행시간 순위 1 브루트 포스로 계산 O(n³) 2위 2 Two Pointer O(n²) 1위 Solution 1. 브루트 포스로 계산 In [8]: def three_sum_1(nums: List[int]) -> List[List[int]]: results = [] nums.sort() # 브루트 포스 3회 반복 for i in range(len(nums)-2): # 중복된 값 건너뛰기 if i > 0 and nums[i] == nums[i-1]: continue for j in rang.. 더보기 [Python] Array (1) Problem 7. Two Sum https://leetcode.com/problems/two-sum/ 풀이 방법 별 실행 시간 및 Big-O 비교 풀이 방식 Big-O 실행시간 순위 1 브루트 포스로 계산 O(n²) 5위 2 in을 이용한 탐색 O(n²) 4위 3 dictionary로 target - 1st value 조회 O(n) 공동 3위 4 dictionary로 조회 & for loop 단일화 O(n) 공동 3위 5 Two Pointer O(n) 1위 Solution 1. 브루트포스 가능한 모든 경우를 탐색하여 원하는 결과를 얻음 In [2]: # typing hint를 위한 라이브러리 호출 from typing import List, Set, Dict, Tuple In [39]: # 브루트포스 .. 더보기 [Python] 문자열 조작 Python 문자열 조작 출처 : 점프투파이썬 위키독스 https://wikidocs.net/4308 * 모든 문제는 leetcode에서 참조함* Problem 1. 유효한 팰린드롬 https://leetcode.com/problems/valid-palindrome/ Solution 1. 브루트포스 방식 In [1]: import re import collections class Solution_1(): def valid_palindrome_1(string: str) -> bool: # 가장 먼저 떠오른 풀이 string = string.lower() string = re.sub(r'^\w','',string) # 아래 두 풀이의 isalnum()은 브루트포스방식이지만 정규식 처리가 더 빠름 return.. 더보기 이전 1 다음