목록View All (350)
DATA101
📚 문제 원본: https://programmers.co.kr/learn/courses/30/lessons/43105?language=python3 코딩테스트 연습 - 정수 삼각형 [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30 programmers.co.kr 🔥 접근법 문제를 보자마자 전형적인 다이나믹 프로그래밍(Dynamic Programming, DP) 유형의 문제라고 생각합니다. 유사한 접근법을 사용한 DP 문제로서 "최저 비용의 노드만 거쳐 미로를 탈출하는 문제"를 접한 경험이 있습니다. 본 문제의 핵심 전략은 다음과 같습니다. 삼각형 맨 아래부터 2개의 인접한 자식 노드 중 큰 값을 부모 노드에 더해 부모 노드를 업데이트해 나가는 것입니..
📚 문제 링크: https://www.acmicpc.net/problem/17086 17086번: 아기 상어 2 첫째 줄에 공간의 크기 N과 M(2 ≤ N, M ≤ 50)이 주어진다. 둘째 줄부터 N개의 줄에 공간의 상태가 주어지며, 0은 빈 칸, 1은 아기 상어가 있는 칸이다. 빈 칸의 개수가 한 개 이상인 입력만 주어진다. www.acmicpc.net 👨💻 접근법 ⚙️ 활용 알고리즘: BFS 주어진 맵(i.e., 그래프)에서 아기상어와 떨어진 거리(i.e., 안전거리)의 최댓값을 구하는 문제입니다. 처음 생각한 아이디어는 상어가 없는(i.e., 빈칸) 노드에서부터 상어까지의 최소 거리를 구하는 것이었습니다. 하지만 해당 접근법은 연산 비용이 클 거라는 생각이 들었습니다. 이에 연산 비용을 최소화하기..
📚 문제 문제 원본: https://www.acmicpc.net/problem/11123 11123번: 양 한마리... 양 두마리... 얼마전에 나는 불면증에 시달렸지... 천장이 뚫어져라 뜬 눈으로 밤을 지새우곤 했었지. 그러던 어느 날 내 친구 광민이에게 나의 불면증에 대해 말했더니 이렇게 말하더군. "양이라도 세봐!" www.acmicpc.net 👨💻 접근법 ⚙️사용 알고리즘: BFS 맵(i.e., 그래프)에 위치한 모든 양 각각을 기준으로 해당 양과 인접해 있는 다른 양의 존재여부를 확인하는 접근법을 활용했습니다. 🔥💻 소스코드 및 풀이과정 from collections import deque # 테스트 케이스 개수 입력받기 test_num = int(input()) # 탐색 방향별 이동할 좌표..
본 포스팅에서는 아나콘다를 활용해 가상환경을 생성 및 삭제하는 방법을 알아봅니다. 더불어, 가상환경 내 패키지를 설치하는 방법까지 알아보겠습니다. 📚목차 1. 가상환경 필요성 2. 가상환경 생성하기 3. 가상환경 리스트 확인하기 4. 가상환경 활성화하기 5. 가상환경 내 패키지 설치 및 확인 5.1. 패키지 설치하기 5.2. 패키지 확인하기 6. 가상환경 비활성화하기 7. 가상환경 리스트 확인하기 8. 가상환경 삭제하기 1. 가상환경 필요성 가상 환경은 프로젝트마다 격리된 환경(즉, 가상 환경)을 생성함으로써 프로젝트별로 패키지를 관리하기 위함입니다. 파이썬을 입문하기로 마음 먹으셨다면 지금부터라도 가상 환경 사용을 권장해 드립니다. 가상 환경의 필요성에 대한 상세한 설명은 이 포스팅을 참고해 주세요. ..
문제 원본 링크: https://www.acmicpc.net/problem/1202 1202번: 보석 도둑 첫째 줄에 N과 K가 주어진다. (1 ≤ N, K ≤ 300,000) 다음 N개 줄에는 각 보석의 정보 Mi와 Vi가 주어진다. (0 ≤ Mi, Vi ≤ 1,000,000) 다음 K개 줄에는 가방에 담을 수 있는 최대 무게 Ci가 주어진다. (1 ≤ Ci www.acmicpc.net 접근법 본 문제의 목표는 가격이 높은 보석을 최대한 많이 담되 용량이 적은 가방부터 차례대로 담는 것입니다. 이때 가방의 용량에 따른 탐색 순서를 고려하지 않으면 문제를 제대로 풀 수 없습니다. 예를 들어, 다음과 같이 (무게, 가치) 정보가 담긴 3개의 보석과 가방 2개가 있다고 가정해 보겠습니다. 여기서 가방의 용량..
문제 문제 원본: https://www.acmicpc.net/problem/12845 12845번: 모두의 마블 영관이는 게임을 좋아한다. 별의별 게임을 다 하지만 그 중에서 제일 좋아하는 게임은 모두의 마블이다. 어김없이 오늘도 영관이는 학교 가는 버스에서 캐릭터 합성 이벤트를 참여했다. 이번 이 www.acmicpc.net 접근법 가장 높은 골드를 획득하는 방법, 간단합니다. 레벨이 가장 높은 카드 1장을 고정하고 나머지 카드와 차례로 덧셈하면 됩니다. 어차피 모든 카드의 레벨과 합산해야 하며, 두 카드의 덧셈이(=획득 골드량) 최대가 되기 위해서는 최상위 레벨의 카드 1장을 고정시키면 되는 것이죠. 소스코드 # 카드 개수 입력받기 n = int(input()) # 카드별 레벨 입력받기 level_l..
문제 문제 원본: https://www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 접근법 본 문제를 한 줄로 요약하자면, N가지 종류의 동전을 조합해 화폐 가치가 K원을 만들 때 필요한 동전의 최소 개수를 구하는 문제입니다. 본 문제는 그리디 알고리즘의 기초 예제인 거스름돈 문제와 변수 이름이나 표현방식이 다를 뿐 풀이 방법은 매우 흡사합니다. 그래서 저는 다음과 같이 일부 변수명을 거스름돈 문제..
안녕하세요 👨💻 오늘은 Github 기존 리포지토리(repository)를 제거하고 새로운 리포지토리 remote를 추가하는 방법에 대해 소개해 드립니다. 아래 2가지 절차를 순서대로 커맨드라인(macOS: 터미널)에 입력해 주시면 된답니다 :) 1. 기존 리포지토리 remote 제거 git remote remove origin 2. 새로운 리포지토리 remote 추가 git remote add origin [원격저장소 주소] 원격 저장소 이름은 https://github.com/사용자이름/리포지토리 이름 형태로 입력해 줍니다. 오늘은 Github에서 기존 리포지토리 remote를 제거하고 새로운 리포지토리를 추가하는 간단한 방법에 대해 알아봤습니다. 포스팅 내용에 오류가 있을 경우 아래에 👇👇👇 댓글..