본문 바로가기
반응형

알고리즘 풀이164

[프로그래머스] 광물 캐기 (Java) https://school.programmers.co.kr/learn/courses/30/lessons/172927?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 광물 캐기 문제 각 곡괭이로 광물을 캤을 때 소비되는 피로도의 최소 값을 구하는 문제 #사용 알고리즘 그리디(greedy) 📌문제 접근 포인트 1. 광물을 캐기 전에 갖고 있는 곡괭이의 수를 먼저 확인하자. 곡괭이로 캘 수 있는 광물의 수는 연속 5개씩이므로, 그 이상 넘어가는 광물은 캐지 못한다. 2. 각 광물에 대해 필요한 피로도 수를 계산하자. 광물에 각 곡괭이별 .. 2024. 4. 8.
[백준 17136] 색종이 붙이기 (python) https://www.acmicpc.net/problem/17136 17136번: 색종이 붙이기 과 같이 정사각형 모양을 한 다섯 종류의 색종이가 있다. 색종이의 크기는 1×1, 2×2, 3×3, 4×4, 5×5로 총 다섯 종류가 있으며, 각 종류의 색종이는 5개씩 가지고 있다. 색종이를 크 www.acmicpc.net 색종이 붙이기 문제 10x10 종이 위에 색종이들을 붙일 때 필요한 최소 개수를 구하는 문제 #사용 알고리즘 백트래킹(Backtracking) 📌문제 접근 포인트 1. 기본적으로 1x1, 2x2, 3x3, 4x4, 5x5의 색종이 5개씩 주어지므로 리스트에 5개씩 할당해 주자. 이때, 최대 결과값은 색종이를 모두 사용하는 25이므로 결과값의 최대치는 26만 잡아도 충분하다. 2. 반복 탐.. 2024. 3. 27.
[프로그래머스] 주사위 고르기(python) https://school.programmers.co.kr/learn/courses/30/lessons/258709 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 주사위 고르기 문제 A와 B가 주사위를 골랐을 때 A가 승리할 확률이 가장 높아지는 주사위 배열을 찾는 문제 #사용 알고리즘 조합(combination) 반복순열(product) 이진탐색(binary Search) 📌문제 접근 포인트 1. n의 범위가 10개이므로, A가 n개 중 n//2개를 뽑을 수 있는 경우의 수를 구하자.(조합, 최대 nCn//2), 이때, 최종적으로 반환해야 하는 주사위 .. 2024. 3. 25.
[백준 14267] 회사 문화1 (python) https://www.acmicpc.net/problem/14267 14267번: 회사 문화 1 영선회사에는 매우 좋은 문화가 있는데, 바로 상사가 직속 부하를 칭찬하면 그 부하가 부하의 직속 부하를 연쇄적으로 칭찬하는 내리 칭찬이 있다. 즉, 상사가 한 직속 부하를 칭찬하면 그 부하 www.acmicpc.net 회사 문화1 문제 상사로부터 부하로 칭찬을 내리 칭찬할 경우 받는 칭찬의 수를 구하는 문제 #사용 알고리즘 다이나믹 프로그래밍 📌문제 접근 포인트 1. 상사가 받는 칭찬은 본인 보다 부하인 직급에 모두 더해진다. 그러므로 받은 칭찬을 우선적으로 구하고, 해당 상사의 부하들에 대해 칭찬 수를 증가해주면 된다. 2. 칭찬 포인트(good)를 만들어서 각 상사에 매칭되는 최초 칭찬 값을 넣어주자. 3.. 2024. 3. 13.
[프로그래머스] 숫자 문자열과 영단어 (python) https://school.programmers.co.kr/learn/courses/30/lessons/81301 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 숫자 문자열과 영단어 문제 문자를 숫자로 바꾸는 문제 #사용 알고리즘 구현 📌문제 접근 포인트 1. 숫자가 나오면 숫자, 영단어가 나오면 숫자로 바꿔주면 된다. 이를 위해 딕셔너리 혹은 리스트를 활용하자. 2. 리스트나 딕셔너리를 활용해서 해당 값을 만나면, 변환해주도록 구성하면 끝 ⚙ 내가 푼 정답 코드1 (효율 나쁨) def solution(s): nums = {'zero' : '0', 'on.. 2023. 11. 23.
[백준 2644] 촌수계산(python) https://www.acmicpc.net/problem/2644 2644번: 촌수계산 사람들은 1, 2, 3, …, n (1 ≤ n ≤ 100)의 연속된 번호로 각각 표시된다. 입력 파일의 첫째 줄에는 전체 사람의 수 n이 주어지고, 둘째 줄에는 촌수를 계산해야 하는 서로 다른 두 사람의 번호가 주어 www.acmicpc.net 촌수계산 문제 부모 자식들 간의 관계가 주어졌을 때, 주어진 두 사람의 촌수를 계산하는 문제 #사용 알고리즘 너비 우선 탐색(BFS) 📌문제 접근 포인트 1. 촌수 계산을 하는 문제. 즉, 촌수는 한칸 넘어갈 때마다 해당 위치에서 촌수가 +1씩 증가한다. 2. 1씩 증가하는 탐색 방법 중 가장 보편적인 방법인 BFS를 구현하면 된다. 일반 기본 BFS 구현 문제들과 풀이 방식이.. 2023. 11. 21.
반응형