[프로그래머스 알고리즘 Kit] 스택/큐 - 다리를 지나는 트럭
·
프로그래밍/Python
https://school.programmers.co.kr/learn/courses/30/lessons/42583 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제설명 트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 한다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 한다. 다리에는 트럭이 최대 bridge_length대 올라갈 수 있으며, 다리는 weight 이하까지의 무게를 견딜 수 있다. 단, 다리에 완전히 오르지 않은 트럭의 무게는 무시한다. solution 함수의 매개변수로 다리에 올라갈 수 있는 트럭 수 b..
[프로그래머스 알고리즘 Kit] 스택/큐 - 주식가격
·
프로그래밍/Python
https://school.programmers.co.kr/learn/courses/30/lessons/42584 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제설명 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하는 것이다. 제한사항 prices의 길이는 2 이상 100,000 이하이다. 구현1 def solution(prices): answer = [] temp = prices while len(temp) > 0: price = temp.pop(0) count = ..
[Leetcode] 이중연결리스트 - Design Browser History
·
프로그래밍/Python
https://leetcode.com/problems/design-browser-history/description/ Design Browser History - LeetCode Can you solve this real interview question? Design Browser History - You have a browser of one tab where you start on the homepage and you can visit another url, get back in the history number of steps or move forward in the history number of steps. Implem leetcode.com 문제 요약 인터넷 브라우저에서 방문기록과 동일한 작..
이중연결리스트(Doubled Linked-List) 구현
·
프로그래밍/Python
이중연결리스트 (Doubled Linked-List) 란?   이중연결리스트는 각 노드가 두 개의 레퍼런스(prev, next)를 가지고 각가 이전 노드와 다음 노드를 가리키는 연결리스트를 구현한 자료구조이다. 이중연결리스트는 단순연결리스트의 단점인 1. 역방향으로는 노드 탐색 불가능2. 삽입/삭제시 반드시 이전 노드를 가리키는 레퍼런스를 추가로 알아야함(이전노드 탐색 시간 걸림) 을 보완하기 위해 나왔다. But, 노드마다 2개의 레퍼런스(prev, next)를 저장해야 한다는 단점이 있다.    기본 구조 head - 첫번째 노드가 무엇인가를 의미하는 정보이다.tail - 마지막 노드가 무엇인가를 의미하는 정보이다.node - 아이템과 레퍼런스 2개를 가진다.item - 항목으로 데이터값이 저장된다...
[김왼손의 왼손코딩] 파이썬 기초강의(2)
·
프로그래밍/Python
-for for n in [1,2,3]: -range() >>> range(3) range(0,3) >>> for n in range(3,5): print(n) 3 4 -comprehension (리스트에 바로) numbers = [1,2,3,4,5,6,7,8,9,10] odd_numbers = [] for num in numbers: if num % 2 == 1: odd_numbers.append(num) print(odd_numbers) -> >>> [num for num in numbers if num % 2 == 1] [1, 3, 5, 7, 9] - 특수연산자 >>> 3 ** 2 #제곱 9 >>> 7 // 3 #몫 2 >>> 7 % 3 #나누기 1 - string 연산자 >>> '김왼손' + 'x..
[김왼손의 왼손코딩] 파이썬 기초 강의(1)
·
프로그래밍/Python
코딩 = 프로그래밍 = 프로그램을 만드는 작업 프로그램 - 컴퓨터가 이해할 수 있는 언어를 사용해서 어떤 문제를 해결하는 것 - 미리 정해놓은 것 - 위에서부터 하나씩 명령어를 실행 - 기본 구성 : 순차/선택/반복 - 순차 : 위에서부터 명령어를 실행 - 선택 : y/n 분기 - 반복 : 같은 명령을 반복 파이썬 배워야하는 이유 1. 쉽다.(다른 언어에 비해서) 간결하다. 2. 모토 - 어떤 문제를 해결하기 위해 답은 1가지가 있다. 3. 빠르다 - 실행속도가 빠른 게 아니라 빠르게 개발할 수 있다. 있는 바퀴를 만들지 마라(이미 만들어진 라이브러리를 가져다 쓰라) -> 입출력 - print - input - http://www.pythontutor.com/ -> 변수 - 숫자로 시작X, 띄어쓰기X, ..