[Python - Lv.3] 정수 삼각형
·
알고리즘 연습/프로그래머스
문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제 이해꼭대기에서 바닥까지 이어지는 경로 중, 거쳐간 숫자의 합이 가장 큰 경우를 찾음아래로 이동할 때는 대각선 오른쪽/왼쪽 한 칸으로만 이동 가능배열 triangle이 주어질 때, 최댓값을 반환하도록 작성풀이 (1)배열 triangle을 len(triangle) - 2(마지막에서 한 칸 위)부터 역으로 순회하여 수를 더함대각선 한 칸 아래 오른쪽/왼쪽 중에 더했을 때, 더 큰 값을 해당 칸에 대입코드 문제에 제공된 예로 순서를 설명하면, [2, 7, 4, 4]가 나타난 행부터 순회를 시작한다. 그리고 2+..
[TIL - 8일 차] 데이터 엔지니어링 : 파이썬으로 웹 데이터를 크롤하고 분석하기 (3)
·
[프로그래머스] 데이터 엔지니어링 데브코스 3기/TIL(Today I Learn)
HTML을 분석해 주는 BeautifulSoupBeautifulSoup 라이브러리지난 실습에서 requests 모듈을 이용해 HTTP 요청을 보내고, 응답을 받았다. 그런데 res.body의 결과를 확인했을 때, 긴 텍스트 형식이라서 분석하기 힘들었다. 이를 해결하기 위해 HTML 코드를 분석해 주는 HTML Parser를 사용할 수 있는데, 가장 유명한 것이 BeautifulSoup4이다.BeautifulSoup4 설치%pip install bs4requests 모듈로 데이터 받기# www.example.com 사이트를 요청한 후 응답 받아보기import requestsres = requests.get("https://www.example.com")res.textbs4 선언 및 사용 - Beautifu..
[알고리즘] 동적 계획법(Dynamic Programming, DP) 개념과 활용
·
CS/알고리즘
동적 계획법(Dynamic Programming, DP)이란?동적 계획법이란 하나의 큰 문제를 여러 개의 작은 부문제로 나누고, 그 결과를 저장하여 다시 큰 문제를 해결할 때 사용하는 기법이다.동적 계획법 vs 재귀적 호출재귀적 호출일반적인 재귀 방식은 동적 계획법과 매우 유사하다. 단, 재귀를 사용 시 동일한 작은 문제가 여러 번 반복되어 비효율적인 계산이 이루어진다는 것이다. 예를 들어 피보나치 수열을 살펴보자. 각 항을 구하기 위해 f(1), f(0)이 등장할 때까지 계속해서 반환하고, 더하는 작업을 진행한다. 또한 값을 따로 저장해두지 않기 때문에 이전에 구했던 값을 다시 처음부터 계산한다. 이러한 계산 방식 때문에 구하는 항이 증가함에 따라 계산 횟수가 기하급수적으로 늘어난다. 1, 1, 2..
[Python - Lv.3] 이중우선순위큐
·
알고리즘 연습/프로그래머스
문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제 이해이중 우선순위 큐는 다음 연산을 할 수 있는 자료구조I 숫자 : 큐에 주어진 숫자 삽입D 1 : 큐에서 최댓값 삭제D -1 : 큐에서 최솟값 삭제연산 operations을 처리한 뒤 큐가 비어있으면 [0, 0], 비어있지 않으면 [최댓값, 최솟값] 반환빈 큐에 데이터를 삭제하라는 연산일 경우 해당 연산 무시풀이 (1)operations의 입력에 맞게 조건문을 작성하여 index, max, min, pop 메서드를 활용하여 해결시간 복잡도가 O(n)인 메소드들을 마구잡이로 섞어서 시간 초과가 나올 것이..