목록전체 글 (98)
CodeClover

[문제링크]https://www.acmicpc.net/problem/17204 📌 문제 탐색하기 N명의 사람들이 원탁에 앉아 있으며, 각 사람은 특정 다른 사람을 지목한다.0번 사람이 시작하며 "1"부터 MMM까지 숫자를 외칩니다.MMM번째로 숫자를 외친 사람이 지목한 대상이 벌주를 마십니다.이때, 보성이(KKK)가 벌주를 마시도록 하기 위해, 0번 사람이 불러야 하는 가장 작은 MMM을 찾습니다.보성이 벌주를 마실 수 없는 경우에는 −1-1−1을 출력 📌 가능한 시간복잡도 각 노드는 최대 한 번만 방문하기 때문에 가능한 시간복잡도는 O(N) 이라고 생각함. 📌 코드 설계하기1. N과 K의 값을 입력받는다.2. 각각 지목된 정보를 배열에 저장하기3. BFS 탐색을 활용하기 📌 정답 코드impo..

[문제 링크]https://www.acmicpc.net/problem/1463 📌 문제 탐색하기 📌 가능한 시간복잡도 📌 코드 설계하기1. 정수 N 입력받기2. 📌 정답 코드import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int N = in.nextInt(); int[] dp = new int[N + 1]; dp[1] = 0; for (int i = 2; i

[문제링크]https://www.acmicpc.net/problem/1010 📌 문제 탐색하기강의 서쪽에는 N개, 동쪽에는 M의 사이트가 위치한다. 서쪽의 모든 사이트를 동쪽의 사이트와 연결해야하는 문제이다. 서쪽의 사이트 N개와 동쪽의 사이트 M개를 연결하는 조합문제이다. 📌 가능한 시간복잡도 1. 테스트 케이스 입력 값 처리해야하니까 O(test_case)2. 효율성을 위해서 DP사용 => DP배열 사용이므로 C(n,r) 한번 계산이니까 이때 시간 복잡도는 O(n,r)인데, 이때 입력값이 M과 N이니까 O(M,N) ...?따라서 가능한 시간복잡도는 두가지 경우를 모두 포함한 O(test_case ,M,N) 이라는 결론을 내림. 📌 코드 설계하기조합을 사용해서 다리를 지을 수 있는 경우..

[문제링크]https://www.acmicpc.net/problem/2775 📌 문제 탐색하기아파트의 특정한 층과 호에 사는 사람 수를 구하는 문제이다.각 호수에 사는 사람의 수는 아래층 사람의 수를 기반으로 계산하기 때문에 중복 계산을 방지하기 위해동적 프로그래밍 DP를 활용해서 구현하면 되는 문제라고 생각함.📌 가능한 시간복잡도 DP의 시간 복잡도는 주어진 테이블 크기에 따라서 결정되기 때문에 문제 조건에 주어진 층수 k와 호수 n으로 결정된다.모든 층과 호에 있는 사람의 수를 구하기 위해서는 우리가 구하고 싶은 k층 한칸 아래의 1호부터 n호 까지의 합으로 계산되기 때문에가능한 시간 복잡도는 O(K*N)이라고 생각합니다. 📌 코드 설계하기우선 dp를 사용한 문제이기 때문,,, dp[0][n]..

[문제링크]https://www.acmicpc.net/problem/2748 📌 문제 탐색하기피보나치 수 문제로서 피보나치 수열을 활용한 방식의 문제이다. 피보나치 수열을 해결하는 가장 기본적인 방법은 재귀를 활용한 방식이므로 재귀적으로 접근할 계획이다. Fn = Fn-1 + Fn-2 (n ≥ 2) 의 규칙을 가지고 있는 수열으로 입력값 n에 따라서 n번째 피보나치 수를 출력하는 문제이다. 📌 가능한 시간복잡도 & 실수 정리n의 값이 더 크게 입력 받아지는 경우 시간 초과가 발생 주의가 필요하다고 생각함... 이 부분은 조금 더 고민해 볼 필요가 있음. => 실제로 시간 초과로 실패함... 이런 경우 해결 방법을 찾아보니 DP를 활용해서 문제를 풀어야한다고 함... 2회차 다른 풀이 도전 ) 배열..

[문제링크]https://www.acmicpc.net/problem/2578 📌 문제 탐색하기5x5 크기의 빙고판에 숫자 1-25가 랜덤으로 적혀있는데, 사회자가 숫자를 하나씩 부르면 불린 숫자를 지워나간다.가로, 세로, 대각선의 숫자 5개가 모두 지워지면 그 줄은 빙고! 빙고가 3개 이상이면 게임 완료.이때, 사회자가 몇번째 숫자를 불렀을때 빙고가 3빙고가 완성되는지 출력하는 문제이다. 📌 가능한 시간복잡도....음... 📌 코드 설계하기 📌 정답 코드import sys# 1. 문제의 입력을 받습니다.# 1-1. 빙고판을 입력 받습니다.arr = []for _ in range(5): arr.append(sys.stdin.readline().split())# 1-2. 2차원배열로 입력되는..