목록View All (352)
DATA101

📚 문제 문제 원본: https://programmers.co.kr/learn/courses/30/lessons/42840?language=python3 코딩테스트 연습 - 모의고사 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 programmers.co.kr 🤔 접근법 ⚙️ 핵심 자료구조: 완전 탐색 문제해결 전략의 핵심은 수포자별 '찍기 패턴'을 고려해 문제별 찍은 번호를 유추해 내는 것입니다. 본 문제에서 1번 수포자는 5개씩 한 패턴으로 정답을 찍고, 2번 수포자는 8개씩, 3번 수포자는 10개씩 찍는다는 것을 알 수 있습니다. 따라서 수포자별 정답 찍는 패턴..

📚 문제 문제 원본: https://programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 🤔 접근법 ⚙️ 핵심 자료구조: 스택 본 문제의 핵심 전략은 진도 업데이트 및 [0] 인덱스 기능의 진도가 100 이상 완수되었는지 반복적으로 확인하는 것입니다. 구현 과정을 조금 더 자세히 설명해 드리자면 다음과 같습니다. 먼저, 모든 기능의 진도(progresses)를 업데이트하고, [0] 인덱스 기능 개발이 완료되었는지(i.e...

📚 문제 원본: 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..