알고리즘 1468

[Programmers] 택배 배달과 수거하기

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/150369 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제에서 주어진 예시를 보면 아래와 같이 그리디하게 접근 가능합니다. 배달/수거를 제일 멀리 있는 집부터 차례대로 진행하며 각 턴마다 제일 멀리 배달한 거리와 제일 멀리 수거한 거리를 비교해 더 높은 값의 두배만큼 이동하면 됩니다. (물류창고 -> cap이 허용되는 만큼 배달 -> cap이 허용되는만큼 수거 -> 물류창고) 여기서 두배로 이동하는 이유는 물류창고로부터 배달 혹은..

[Programmers] 개인정보 수집 유효기간

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/150370 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문자열 파싱만 잘하면 쉽게 풀 수 있는 문제였습니다. 개발환경: Programmers IDE 지적, 조언, 질문 환영합니다! 질문 남겨주세요~

[Programmers] 마법의 엘리베이터

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/148653 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 주어진 숫자의 일의 숫자부터 확인하면서 풀면 쉽게 풀 수 있는 문제였습니다. 알고리즘은 아래와 같습니다. 1. 일의 자리 숫자와 십의 자리 숫자를 확인합니다. 2. 일의 자리 숫자가 5보다 클 경우 올림 해줍니다. 2.1 일의 자리 숫자가 5일 경우 십의 자리 숫자가 5 이상일 경우 올림, 5 미만일 경우 내림해 줍니다. 2.2 일의 자리 숫자가 5보다 작을 경우 내림해 줍니다..

[Programmers] 택배상자

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/131704 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 지문 내 컨베이어 벨트를 보고 스택 자료구조를 연상할 수 있었다면 쉽게 풀 수 있는 문제였습니다. 개발환경: Programmers IDE 지적, 조언, 질문 환영합니다! 질문 남겨주세요~

[Programmers] 할인 행사

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/131127?language=cpp 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해시를 이용하면 비교적 쉽게 풀 수 있는 문제였습니다. 알고리즘은 아래와 같습니다. 1. 정현이가 원하는 제품과 수량을 required 맵 객체에 저장합니다. 2. 처음 열흘 동안 할인받을 수 있는 품목을 cur 맵 객체에 수량과 함께 저장하여 1번에서 구한 required 맵 객체와 비교합니다. 2.1 조건을 충족하면 answer를 1 증가시킵니다. 3..

[Programmers] 숫자 타자 대회

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/136797 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr numbers의 길이가 최대 십만이기 때문에 브루트 포스로 풀 수 없는 문제였습니다. 따라서, 저는 오랜만에 DP로 접근해서 풀었습니다. 알고리즘은 아래와 같습니다. 1. 숫자는 0 ~ 9로 한정되어있기 때문에 이차원 배열을 통해 최소 가중치를 미리 구해줍니다. 2. [numbers의 최대 길이][왼손이 누를 수 있는 0~9까지의 숫자][오른손이 누를 수 있는 0~9까지의 숫자..

[Programmers] 숫자 짝궁

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/131128 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 간단한 문자열 처리 문제였습니다. 알고리즘은 아래와 같습니다. 1. X를 순회하며 각 숫자가 몇 번 나왔는지 확인합니다. 2. Y를 순회하면서 1번에서 구한 짝꿍들을 문자열 s에 추가합니다. 3. 2번을 마치고도 s가 빈 문자열이면 짝궁이 없으므로 "-1"을 반환합니다. 4. s가 0으로만 구성되면 "0"을 반환합니다. 5. 3번 혹은 4번에서 프로그램이 종료가 안 되었다면 s..

백준 25596번 마트료시카 박스 II

문제 링크입니다: https://www.acmicpc.net/problem/25596 25596번: 마트료시카 박스 II 첫 번째 줄에 수정 전 설계도의 박스의 개수 $N$, 수정 후 설계도의 최대 서브 박스 개수 $M$, 추가할 수 있는 박스의 개수 $K$가 공백으로 구분되어 주어진다. $(4 \leq N \leq 1\,000;$ $2 \leq M \leq N - 2;$ $0 www.acmicpc.net 큐 배열을 이용하여 푼 문제였습니다. 알고리즘은 아래와 같습니다. 1. N이 최대 1,000이고 K 또한 최대 1,000이므로 크기가 2,000이 넘는 큐 배열을 선언해줍니다. 2. 주어진 입력을 토대로 1번에서 선언한 큐 배열을 전처리해줍니다. 3. 모든 박스를 순회하며 서브 박스의 개수가 M개 이하..

알고리즘/BOJ 2022.09.22

백준 25516번 거리가 K이하인 트리 노드에서 사과 수확하기

문제 링크입니다: https://www.acmicpc.net/problem/25516 25516번: 거리가 k이하인 트리 노드에서 사과 수확하기 n개의 정점과 n - 1개의 간선으로 구성된 트리 T가 있다. 정점 번호는 0부터 n - 1까지이고 0번 정점이 루트이다. 모든 간선의 길이는 1이다. 트리 T의 각 정점에는 사과가 0개 또는 1개 놓여있다. 루 www.acmicpc.net 간단한 DFS 문제였습니다. 개발환경:Visual Studio 2022 지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

알고리즘/BOJ 2022.09.04

백준 25513번 빠른 오름차순 숫자 탐색

문제 링크입니다: https://www.acmicpc.net/problem/25513 25513번: 빠른 오름차순 숫자 탐색 5 x 5 크기의 보드가 주어진다. 보드는 1 x 1 크기의 정사각형 격자로 이루어져 있다. 보드의 격자에는 -1, 0, 1, 2, 3, 4, 5, 6중 하나의 수가 적혀 있다. 격자의 위치는 (r, c)로 표시한다. r은 행 번호, c www.acmicpc.net 전형적인 BFS 문제에서 1 ~ 6이 적힌 칸은 여러 번 밟을 수 있는 조건이 하나 추가된 문제였습니다. 알고리즘은 아래와 같습니다. 1. 1부터 6까지 순차적으로 탐색해야 하므로 반복문을 돌리며 BFS를 수행합니다. 2. 현재 위치 {r, c}에서 탐색하는 숫자가 있는 칸까지 도달할 때까지 BFS를 수행하고 만약 해당..

알고리즘/BOJ 2022.09.04