프로그래머스 DP 문제 분석하기
·
Algorithm(Python)
1. 정수 삼각형https://school.programmers.co.kr/learn/courses/30/lessons/43105 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제 요약: 7에서 맨 아래로 내려오는데 합이 가장 큰 값 구하기. 왼쪽 아래와 오른쪽 아래로만 이동가능 풀이 과정:DP 중에서도 Up-Down으로 풀면 쉽게 풀이가 가능한 문제이다. 문제는 7에서 부터 내려오는 걸로 되어 있지만, 좀 더 쉽게 풀기 위해서는 아래서 부터 최댓값을 찾아서 처음 출발지인 '7'로 돌아오면 된다. [처음 삼각형] 7 3 8 8 1 0 2 7 4 44 5 2 6 5 [아래서 두번째 최댓값 업데..
프로그래머스: Stack Queue 알고리즘 문제 분석하기
·
Algorithm(Python)
Queue를 활용한 문제 풀이 1https://school.programmers.co.kr/learn/courses/30/lessons/42586 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr [풀이과정 및 아이디어 도출]해당 문제는 "앞에있는 기능이 배포가 되지 않으면, 뒤에 있는 기능이 개발 완료되었더라도 먼저 배포 불가능하다" 가 문제의 핵심이다. 여기서 이제 "앞에있는 기능이 배포가 되지 않으면, 뒤에 있는 기능이 개발 완료되었더라도 먼저 배포 불가능"--> 선입 선출 --> FIFO --> Queue를 떠올렸다 그러면 큐에는 무엇을 저장해야할까?-> 작업 순서 및 크기, 작업 진행 속도: 이 ..
2023 KAKAO BLIND RECRUITMENT: 택배 배달과 수거하기(LV2)
·
Algorithm(Python)
문제 링크(프로그래머스)https://school.programmers.co.kr/learn/courses/30/lessons/150369 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이과정문제를 보면 결국 구해야하는 것은 왔다갔다한 '최소 거리'이다.결국 구해야하는 것은현재 i 번째 집에 배달하거나 수거해야할 박스가 있는지 이다. -쉬운 풀이- 1. 트럭에 실을 수 있는 박스와 현재 i, i-1, i-2,...0 번째 집에 배달해야하는 박스가 얼마나 있는지 확인하기2. 박스를 i번째 집까지 전부 배달하고 오면서 수거할 수 있는 박스가 얼마나 있는지, 그리고 트럭에 얼마만큼 실을 수 있는지를 구하..
백준 2512: 예산(실버2)
·
Algorithm(Python)
문제국가의 역할 중 하나는 여러 지방의 예산요청을 심사하여 국가의 예산을 분배하는 것이다. 국가예산의 총액은 미리 정해져 있어서 모든 예산요청을 배정해 주기는 어려울 수도 있다. 그래서 정해진 총액 이하에서 가능한 한 최대의 총 예산을 다음과 같은 방법으로 배정한다.모든 요청이 배정될 수 있는 경우에는 요청한 금액을 그대로 배정한다.모든 요청이 배정될 수 없는 경우에는 특정한 정수 상한액을 계산하여 그 이상인 예산요청에는 모두 상한액을 배정한다. 상한액 이하의 예산요청에 대해서는 요청한 금액을 그대로 배정한다. 예를 들어, 전체 국가예산이 485이고 4개 지방의 예산요청이 각각 120, 110, 140, 150이라고 하자. 이 경우, 상한액을 127로 잡으면, 위의 요청들에 대해서 각각 120, 110,..
백준 9017: 크로스 컨트리(실버3)
·
Algorithm(Python)
문제크로스 컨트리 달리기는 주자들이 자연적인 야외의 지형에 만들어진 코스를 달리는 운동 경기이다. 경주 코스는 일반적으로 4에서 12 킬로미터이며, 숲이나 넓은 땅을 통과하는 풀과 흙으로 된 지면과 언덕과 평평한 지형을 포함한다. 이 경기는 주자들의 개인성적을 매기고, 이를 가지고 팀의 점수를 계산한다. 한 팀은 여섯 명의 선수로 구성되며, 팀 점수는 상위 네 명의 주자의 점수를 합하여 계산한다. 점수는 자격을 갖춘 팀의 주자들에게만 주어지며, 결승점을 통과한 순서대로 점수를 받는다. 이 점수를 더하여 가장 낮은 점수를 얻는 팀이 우승을 하게 된다. 여섯 명의 주자가 참가하지 못한 팀은 점수 계산에서 제외된다. 동점의 경우에는 다섯 번째 주자가 가장 빨리 들어온 팀이 우승하게 된다.예를 들어, 다음의 표..
백준 2961: 도영이가 만든 맛있는 음식(실버2)
·
Algorithm(Python)
문제도영이는 짜파구리 요리사로 명성을 날렸었다. 이번에는 이전에 없었던 새로운 요리에 도전을 해보려고 한다.지금 도영이의 앞에는 재료가 N개 있다. 도영이는 각 재료의 신맛 S와 쓴맛 B를 알고 있다. 여러 재료를 이용해서 요리할 때, 그 음식의 신맛은 사용한 재료의 신맛의 곱이고, 쓴맛은 합이다.시거나 쓴 음식을 좋아하는 사람은 많지 않다. 도영이는 재료를 적절히 섞어서 요리의 신맛과 쓴맛의 차이를 작게 만들려고 한다. 또, 물을 요리라고 할 수는 없기 때문에, 재료는 적어도 하나 사용해야 한다.재료의 신맛과 쓴맛이 주어졌을 때, 신맛과 쓴맛의 차이가 가장 작은 요리를 만드는 프로그램을 작성하시오.입력첫째 줄에 재료의 개수 N(1 ≤ N ≤ 10)이 주어진다. 다음 N개 줄에는 그 재료의 신맛과 쓴맛이..
백준 1497: 기타콘서트(실버1)
·
Algorithm(Python)
문제강토는 Day Of Mourning의 기타리스트로, 다가오는 공연을 준비하고 있다.어느 날 강토의 집에 도둑이 들어서 기타를 모두 도둑맞고 말았다. 기타를 사야 한다.강토는 공연 때 연주할 노래의 목록을 뽑아 놓았다. 하지만, 하나의 기타로 모든 곡을 연주할 수는 없다. 어떤 기타는 어떤 곡을 연주할 때, 이상한 소리가 나기 때문이다. 항상 완벽을 추구하는 강토는 이런 일을 용납하지 않는다.최대한 많은 곡을 제대로 연주하려고 할 때, 필요한 기타의 최소 개수를 구하는 프로그램을 작성하시오.예를 들어, GIBSON으로 1, 2, 3번 곡을 제대로 연주할 수 있고, FENDER로 1, 2, 5번 곡을 제대로 연주할 수 있고, EPIPHONE으로 4, 5번 곡을 제대로 연주할 수 있고, ESP로 1번곡을 ..
백준 17086: 아기상어2(실버2)
·
Algorithm(Python)
문제N×M 크기의 공간에 아기 상어 여러 마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 아기 상어가 최대 1마리 존재한다.어떤 칸의 안전 거리는 그 칸과 가장 거리가 가까운 아기 상어와의 거리이다. 두 칸의 거리는 하나의 칸에서 다른 칸으로 가기 위해서 지나야 하는 칸의 수이고, 이동은 인접한 8방향(대각선 포함)이 가능하다.안전 거리가 가장 큰 칸을 구해보자. 입력첫째 줄에 공간의 크기 N과 M(2 ≤ N, M ≤ 50)이 주어진다. 둘째 줄부터 N개의 줄에 공간의 상태가 주어지며, 0은 빈 칸, 1은 아기 상어가 있는 칸이다. 빈 칸과 상어의 수가 각각 한 개 이상인 입력만 주어진다.출력첫째 줄에 안전 거리의 최댓값을 출력한다. 풀이 방법:당연히 문제를 보자마자 BFS..