동적 프로그래밍(Dynamic Programming)은 어떤 문제를 해결하는 방법 중 하나로, 큰 문제를 작은 하위 문제로 나누어 해결하는 알고리즘 설계 기법입니다. 이러한 하위 문제들은 한 번만 계산하고, 그 결과를 메모리에 저장해두었다가 필요할 때 재사용하여 중복
현재 상태에서 가장 좋은 선택을 하는 방법이다. 매순간 가장 좋은 선택을 실행하며, 현재의 선택이 나중에 미칠 영향에 대해서는 고려하지 않는다. 캘리포니아에서 뉴욕까지 전기차를 타고 주행할 예정이다. 완충이 되어있는 경우 300km를 갈 수 있다.탐욕 알고리즘을 따르는
스택은 후입선출(LIFO, Last-In-First-Out) 원칙에 따라 데이터를 쌓고, 가장 최근에 쌓인 데이터가 가장 먼저 처리되는 자료구조입니다. 주로 함수 호출과 관련된 작업, 괄호 검사, 뒤로 가기 등의 기능을 구현할 때 유용하게 사용됩니다.스택은 기본적으로
파이썬의 heapq 모듈을 활용하여 힙 자료구조와 힙큐(heapq)를 사용하는 방법에 대해 알아보겠습니다. 힙은 최소값 또는 최대값을 빠르게 찾기 위한 이진트리 기반의 자료구조로, 우선순위 큐를 구현하는데 사용됩니다. 파이썬의 heapq 모듈은 효율적인 힙 기능을 제공
다익스트라 알고리즘은 최단 경로 문제를 푸는 데에 사용되며, 대표적으로 가중치가 있는 그래프에서 노드 간 최단 거리를 찾는 데에 활용됩니다. 이 알고리즘은 1956년에 프레드릭 웹스터 다익스트라에 의해 개발되었으며, 그 존재 이후로 컴퓨터 네트워크, 길 찾기 애플리케이
https://school.programmers.co.kr/learn/courses/30/lessons/132265첫번째 풀이 - (시간 초과)for문을 통해 topping를 하나씩 슬라이싱한다.슬라이싱한 부분을 기준으로 왼쪽 형(old), 오른쪽 동생(you
https://school.programmers.co.kr/learn/courses/30/lessons/17681첫번째 풀이 - (성공)for문을 통해 arr1,arr2 숫자를 이진법으로 변환한다. 이진법으로 바꿨을때 5자리가 되지 않는다면 앞에 0을 채워넣는
commands는 세 개의 값으로 이루어진 리스트로 이루어진 리스트이다. 각각의 리스트는 start, end, 그리고 k 세 개의 값을 가지고 있다.for문을 통해 각 리스트에서 start, end, k 값을 추출한다.array에서 start 인덱스부터 end 인덱스까
https://school.programmers.co.kr/learn/courses/30/lessons/68644comb라는 리스트에 numbers의 두가지 수를 튜플로 넣어 저장한다. (리스트컴프리헨션 사용) 튜플을 더해 나오는 수를 중복을 제거한다. (se
문제 풀이 풀이 1 - (성공) reference -
https://school.programmers.co.kr/learn/courses/30/lessons/12915for문을 통해 딕셔너리를 생성한다. 키는 원래 주어진 단어 값은 n인덱스부터 자른값을 넣는다.딕셔너리의 값을 기준으로 딕셔너리를 정렬한다.딕셔너리
문제 풀이 풀이 1 - (실패) for문을 통해 딕셔너리를 생성한다. 키는 원래 주어진 단어 값은 n인덱스부터 자른값을 넣는다. 딕셔너리의 값을 기준으로 딕셔너리를 정렬한다. 딕셔너리의 키값만을 반환한다. reference
문제 풀이 풀이 1 - (실패) for문을 통해 딕셔너리를 생성한다. 키는 원래 주어진 단어 값은 n인덱스부터 자른값을 넣는다. 딕셔너리의 값을 기준으로 딕셔너리를 정렬한다. 딕셔너리의 키값만을 반환한다. reference
https://school.programmers.co.kr/learn/courses/30/lessons/1844코드는 dx와 dy 두 개의 리스트를 정의합니다. 이 리스트들은 각각 상, 하, 좌, 우 네 방향으로 이동할 때의 x와 y 좌표 변화를 나타냅니다.
hhttps://school.programmers.co.kr/learn/courses/30/lessons/154539numbers의 갯수와 동일하게 -1을 넣어 answer리스트를 만든다.이중 for문을 수행한다. 이때 첫번째 for문은 뒷 큰수를 찾는 수이다
https://school.programmers.co.kr/learn/courses/30/lessons/42883itertools.combinations 함수를 사용하여 my_list에서 가능한 모든 조합을 생성한다. 여기서 len(number) - k 개수만
https://school.programmers.co.kr/learn/courses/30/lessons/42583truck_weights 왼쪽에서 빼기 때문에 deque 자료구조로 바꾸어 준다.bridge_length만큼 원소가 들어갈수 있도록 새로운 dequ
https://school.programmers.co.kr/learn/courses/30/lessons/42746numbers에 주어진 숫자를 가지고 가능한 순열을 모두 만든다.순열의 조합을 붙여 숫자로 만들어 새로운 리스트에 저장한다.리스트를 정렬하여 가장
https://school.programmers.co.kr/learn/courses/30/lessons/154539numbers길이와 동일한 리스트를 생성하는데 원소를 -1로 통일한다.이중 for문을 돌려 뒤에 있는 큰수를 찾는다. 2-1. numbersi는
📌 문제 https://school.programmers.co.kr/learn/courses/30/lessons/12936 📌 풀이 풀이 1 - (12,13번 테스트케이스 시간 초과) 1부터 n까지의 수로 리스트("_list")를 생성한다. 리스트의 원소로 만들수
문제 https://school.programmers.co.kr/learn/courses/30/lessons/42885 풀이 풀이 1 - (성공) 구명보트에 태울 수 있는 사람은 최대 2명입니다. 따라서, 사람들의 몸무게를 오름차순 정렬한 뒤, 두 명(몸무게가 가장
https://school.programmers.co.kr/learn/courses/30/lessons/42885numbers에 들어 있는 수의 음수 형태를 만든다(양수, 음수)와 같이 튜플형태를 nums라는 리스트에 넣는다.nums 리스트로 만들 수 있는 모
https://school.programmers.co.kr/learn/courses/30/lessons/77885문제에서 원하는 것은 주어진 숫자x보다 크고 x와 비트가 1~2개 다른 수들 중에서 제일 작은 수 찾는 것이다.이문제는 짝수와 홀수로 나누어 이 문
https://school.programmers.co.kr/learn/courses/30/lessons/68645문제의 규칙은 아래 이미지와 같다:채우는 방향이 3가지로 나뉘어져 있으며 n만큼 실행하였을때 삼각형이 모두 채워진다. (규칙을 찾을때는 n이 다른
📌 문제 https://school.programmers.co.kr/learn/courses/30/lessons/68645 📌 풀이 풀이 1 - (성공) > 문제의 규칙은 아래 이미지와 같다: > 채우는 방향이 3가지로 나뉘어져 있으며 n만큼 실행하였을때 삼각형
https://school.programmers.co.kr/learn/courses/30/lessons/169199문제 내 예시는 아래 이미지와 같이 움직이게 되며 규칙은 아래와 같다.시작점 R에서 시작한다.범위 안에서 돌아다닐 수 있다. D를 만날때까지 특정
📌 문제 https://school.programmers.co.kr/learn/courses/30/lessons/161989 📌 풀이 풀이 1 - (11,20,24,26번 테스트 케이스 실패) n갯수 만큼 1를 만든다. section에 있는 숫자에서 -1을 뺀
https://school.programmers.co.kr/learn/courses/30/lessons/161989각 stage에 머무는 사람의 수를 세린다. (Counter 함수 사용)1~N번와 임의의 숫자를 넣어 이중리스트를 만든다 (ex. \[1,0,2,
https://school.programmers.co.kr/learn/courses/30/lessons/178871호명되는 이름의 인덱스 값을 저장해둔다.호명된 이름을 players에서 삭제한다.저장해둔 이름의 인덱스에 1를 뺀 값이 새로운 인덱스 자리이다.
https://www.acmicpc.net/problem/10026적록색약을 가지고 있지 않는 사람은 case_1, 적록색약을 가진 사람은 case_2라고 칭한다.(case_1) 각 색깔별 구역 갯수를 저장하기 위해 딕셔너리(color_1)를 생성한다.인풋으
📌 문제 https://www.acmicpc.net/problem/3986 https://reakwon.tistory.com/198 📌 풀이 풀이 - (성공)
https://www.acmicpc.net/problem/1515N까지 숫자를 세웠을 때 입력값에 있는 모든 숫자가 존재해야한다. 두개의 예제를 확인해 보면 이해하기가 쉽다!예제처럼 숫자를 하나의 문자열처럼 나열하여 1,2,3,4를 모두 가질 수 있는 최솟값은