알고리즘90 SWEA: 1859 백만 장자 프로젝트 문제 정보 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 핵심 두 가지 풀이가 있는데, 앞에서부터 확인할 것인가 뒤에서부터 확인할 것인가 이다 결론부터 말하자면 이 문제는 뒤에서부터 확인하는 것이 훨씬 효율적이다 두 가지의 접근 방식에서의 풀이방식과, 내가 간과했던 부분을 바탕으로 풀이를 작성해 보겠다 풀이 1. Bottom-Up을 사용한 풀이 import java.io.*; import java.util.*; class Solution { static long result; public static void main(String[] args) throws Exception { BufferedReader br.. 알고리즘/Java 2023. 11. 6. 백준 알고리즘: 2579번 계단 오르기 문제 정보 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 핵심 DP(Dynamic Programming) 을 활용하여 풀이하여야 함 - Top-Down 풀이 (Recursive) - Bottom-Up 풀이 (반복) 먼저 풀이하기 전에, 문제의 특성을 분석해 보았다 1. 한번에 한 계단 혹은 두 계단을 오를 수 있음 2. 연속으로 한 계단을 세번 오를 수 없음 3. 마지막 계단을 반드시 밟아야 함 Specification dp[i]: 규칙을 지키며 i번째 계단을 밟았을 때의 최대값 scores[i]: i번째 계단을 밟았을.. 알고리즘/Java 2023. 10. 26. 백준 알고리즘: 1465번 1로 만들기 문제 정보 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 핵심 효율적인 알고리즘의 구현 풀이는 두가지 방식으로 진행해 보았다 - BFS(Breath First Search) - DP(Dynamic Programming) - Bottom-up 방식 이 문제를 풀이하는데에 더욱 효율적인 알고리즘은 DP였으며 많이 접하지 못했던 유형이라 언제 이러한 알고리즘을 적용시켜야 하는지에 대해서 알게 되었던 것 같다 추가로 Top-down 방식의 풀이도 존재하는데, 더 효율적인 풀이가 있을 것 같아서 이에 대해서는 공부를 좀 더 하고 올리려고 한다 풀이 1. BFS를 활용한 풀이 import java.io.*; import java.u.. 알고리즘/Java 2023. 10. 25. 백준 알고리즘: 1003번 피보나치 함수 문제 정보 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 핵심 피보나치는 역시 DP(Dynamic Programming) 아닐까요? 피보나치의 특징인 f(n) = f(n-2) + f(n-1) 는 다음을 의미하기도 합니다 f(n)을 이루는 0의 개수와 1의 개수 = f(n-2)를 이루는 0의 개수와 1의 개수 + f(n-1)을 이루는 0의 개수와 1의 개수 따라서, 일반적인 피보나치 풀이처럼 풀되 0의 개수와 1의 개수를 더해가며 풀이하면 쉽게 풀이할 수 있을 것! 내 풀이의 경우 Fibo class를 만들어서, instance variable로 numberOfZero(0이 나타나는 개수)와 numberO.. 알고리즘/Java 2023. 10. 25. 백준 알고리즘: 2606번 바이러스 문제 정보 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하인 양의 정수이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍 www.acmicpc.net 핵심 그래프 탐색 알고리즘을 통해서 연결된 노드를 탐색하는 것! 여러 그래프 탐색 알고리즘을 사용할 수 있겠지만, 나는 깊이 우선 탐색을 사용하여 풀이하였다 map을 어떻게 입력 받고 구성할 것이며 visited를 확인해주는 것이 매우 중요하다 하지만 그렇게 어렵지는 않았던 것 같다 풀이 package solving; import java.io.*; import java.util.*; class Main { public static void main(Str.. 알고리즘/Java 2023. 10. 25. 이전 1 ··· 5 6 7 8 9 10 11 ··· 18 다음