전체 글 108

백준 2903번 C++

https://www.acmicpc.net/problem/2903 2903번: 중앙 이동 알고리즘 상근이는 친구들과 함께 SF영화를 찍으려고 한다. 이 영화는 외계 지형이 필요하다. 실제로 우주선을 타고 외계 행성에 가서 촬영을 할 수 없기 때문에, 컴퓨터 그래픽으로 CG처리를 하려고 한다. www.acmicpc.net 생각 규칙이 있나? 답이 전부 제곱수인 건 알겠다! 0 - 2^2 1 - 3^3 2 - 5^5 3 - 9^9 4 - 17^17 5 - 33^33 … 2, 3, 5, 9… 이 숫자들을 전 단계의 제곱수를 만들기위한 n이라 하면 output은 n*(n-1)이 된다! 빠르게 코드 작성을 해보자 정답 코드 #include using namespace std; int main(){ int n, n..

백준 2023.12.26

백준 11047 C++

https://www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 생각 1. 이건 knapsack 문제다! 동전이니까 자르지 못하는 knapsack 문제 2. 근데 그렇게 어려운 고민 할 필요 없이 단순하게 금방 풀 수 있는 문제다! 알고리즘 구상하지 않고 빠르게 풀 수 있음 정답 코드 #include using namespace std; int main(){ int n,k; cin >> n >> ..

백준 2023.12.24

백준 1342번 C++

https://www.acmicpc.net/problem/1342 1342번: 행운의 문자열 민식이와 준영이는 자기 방에서 문자열을 공부하고 있다. 민식이가 말하길 인접해 있는 모든 문자가 같지 않은 문자열을 행운의 문자열이라고 한다고 한다. 준영이는 문자열 S를 분석하기 시작 www.acmicpc.net 보자마자 생각난 것 : color graph! 알고리즘 수업 열심히 들은 보람이 있다고 생각했다 ㅋㅋㅋ 교수님 보고 계십니까?!! 앞으로 엘베에서 마주치면 90도로 인사박겠습니다!!! 하하 암튼 나한테 휴학은 없으니까 내년 그니까 3학년 1학기 시험기간이 돌아올 때 까지 1일 1백준 다시 레츄고 애들아 열심히 하자... 생각 행운의 문자열인지 확인하는 방법 (Find 함수로 따로 만들자!) 1. 인접한..

백준 2023.12.23

백준 10819 C++

https://www.acmicpc.net/problem/10819 10819번: 차이를 최대로 첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다. www.acmicpc.net + C++의 next_permutation 함수를 사용하면 더 쉽게 풀 수 있다! 하지만 난 안 썼음 생각 1. 계산하고 비교하면서 큰 것만 남긴다! 근데 진짜 어떻게 해야할지 모르겠어 배열의 크기 제한이 8까지니까!! 작으니까 뭔가 하면 될 것 같아 코드 초안 int N, ans; int arr[9]; int result(){ // 일케 계산하는 함수를 따로 만들고! int result = 0; for(int..

백준 2023.11.27

백준 1182 C++

https://www.acmicpc.net/problem/1182 1182번: 부분수열의 합 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. www.acmicpc.net 나 난독 있나봐... 생각 숫자가 들어가는 경우 / 안들어가는 경우로 나눠 dfs를 돌리자 1. sum += arr[1]; 2. sum = sum; 코드 초안 약간 이런 느낌 void dfs(int k, int sum){ for(int i=0 ; i main에서 S가 0일때만 공집합을 하나 빼주자~ 2. if 처리를 어떻게 해야할지 모르겠음!!! -> 그냥 fo..

백준 2023.11.26
728x90