목록알고리즘 (71)
우당탕탕 개발일지
💡문제 링크 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 💡문제 분석 요약전형적인 DP 문제정수 삼각형이고, 대각선 아래 왼쪽 혹은 오른쪽 숫자를 더해나가서 만들 수 있는 총합의 최댓값을 구하면 된다.작은 문제를 가지고 큰 문제를 해결하는 문제 💡알고리즘 설계처음에 문제를 읽었을 때, 위에서 아래로 더해나가는 것처럼 보이지만 사실상 DP를 이용해서 해결하려면 작은 문제를 가지고 큰 문제를 해결해야 하므로, 아래에서 위로 올라가야 한다.1. 맨 아랫줄 그 위부터 탐색한다.2. 대각선 아래 왼쪽 오른쪽 중 더 큰 값을 자기 자신에 더한다.3. 맨 아랫줄..
💡문제 링크 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 💡문제 분석 요약연산 operations 리스트가 매개변수로 주어진다.operations에 나온대로 큐에 연산을 수행한다.1. "I 숫자" : 큐에 숫자 삽입2. "D 1" : 큐에서 최댓값 삭제3. "D -1" 큐에서 최솟값 삭제이 연산을 모두 마치고 난 뒤 큐에 남은 최댓값과 최솟값을 출력한다.큐에 남은 게 없다면 [0, 0]을 출력한다. 💡알고리즘 설계1. if문을 사용해서 연산에 대한 코드를 구현한다.1. "I 숫자" : 큐에 숫자 삽입 -> append2. "D 1" : 큐에서 최댓값 ..
💡문제 링크 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 💡문제 분석 요약던전이 여러 개가 있음(1~8개)던전에 대한 정보는 [a, b]로 주어지는데, a는 최소 필요 피로도이고 b는 소모 피로도이다.이 던전을 통과하려면 현재 피로도가 a 이상이어야 하고, 이 던전을 통과하면 피로도가 b만큼 깎인다.던전들에 대한 정보가 리스트로 주어졌을 때, 그리고 현재 피로도가 정수로 주어졌을 때던전의 순서를 잘 조합해서 통과할 수 있는 던전 개수의 최댓값을 구하는 문제 💡알고리즘 설계그냥 무지성 순열 돌리기from itertools import permuta..
💡문제 링크 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 💡문제 분석 요약피보나치 수열을 구현하는 문제 💡알고리즘 설계반복문을 이용해서 푼다% 1234567을 까먹지 않는다 💡코드def solution(n): a, b = 0, 1 if n == 0: return 0 elif n == 1: return 1 else: for i in range(2, n+1): c = (a + b) % 1234567 if i % 2 == 0: a = c else: b = c ..
💡문제 링크https://school.programmers.co.kr/learn/courses/11133/lessons/71165 💡문제 분석 요약꽃이 피어있으면 1이고, 다음 번에 상하좌우로 1이 된다(상하좌우로 꽃이 핀다)정원에 있는 모든 꽃이 다 피기까지 걸리는 날짜를 구하는 문제 💡알고리즘 설계일단 쭉쭉 밖으로 뻗어나가는 구조이니까 BFS임을 파악한다.근데 그 이후로 어떻게 해야할지 몰라서 다른 풀이를 참고했다.. 💡코드from collections import dequedef solution(garden): n = len(garden) answer = 0 dx = [-1, 1, 0, 0] #동, 서 dy = [0, 0, -1, 1] # 북, 남 # 첫 날, 1인..

💡문제 링크https://school.programmers.co.kr/learn/courses/11133/lessons/71162 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 💡문제 분석 요약종이접기를 해서 구할 수 있는 최댓값을 구하는 문제종이의 크기는 4*4로 고정이고, 각 칸마다 숫자가 적혀있다.가로 혹은 세로로 접어서 만나는 숫자끼리 합했을 때 나오는 값의 최댓값을 구하는 문제이다.이 빨간선을 접어서 나오는 숫자는 26, 20, 55, 29이고 이 중에서 가장 큰 수는 55임을 알 수 있다. 💡알고리즘 설계def solution(grid): ..