반응형

공부/백준 70

백준 1110번: 더하기 사이클(C++)

www.acmicpc.net/problem/1110 1110번: 더하기 사이클 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, www.acmicpc.net 코드 #include using namespace std; int main() { int n; // 주어진 수 cin >> n; int left, right; // 왼쪽 수, 오른쪽 수 int cycle = 0; // 사이클 수 int num_new = n; // 계산된 수 do{ left = num_new / 10; right = num_new % 10; num_new = right * 10 +..

공부/백준 2020.12.01

백준 1075번: 나누기(C++)

www.acmicpc.net/problem/1075 1075번: 나누기 첫째 줄에 N, 둘째 줄에 F가 주어진다. N은 100보다 크거나 같고, 2,000,000,000보다 작거나 같은 자연수이다. F는 100보다 작거나 같은 자연수이다. www.acmicpc.net 코드 #include using namespace std; int main() { int N, F; int answer = 0; cin >> N >> F; N /= 100; N *= 100; while((N+answer) % F != 0 && answer < 100) answer ++; if(answer < 10) printf("0%d", answer); else printf("%d", answer); } 풀이 정수 N의 가장 뒤 두 자리를..

공부/백준 2020.11.29

백준 9251번: LCS(C++)

www.acmicpc.net/problem/9251 9251번: LCS LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다. www.acmicpc.net 코드 #include using namespace std; string a, b, temp; int dp[1001][1001] = {0, }; void init(){ cin >> a >> b; if(a.length() > b.length()){ temp = a; a = b; b = temp; } } int max(int a, int b){ return a > b ? ..

공부/백준 2020.11.28

백준 1912번: 연속합(C++)

www.acmicpc.net/problem/1912 1912번: 연속합 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net 코드 #include using namespace std; int n; int arr[100000]; int dp[100000]; void init(){ cin >> n; for(int i=0; i> arr[i]; } } void solve(){ dp[0] = arr[0]; int max_num = dp[0]; for(int i=1; i arr[i] ? dp[i-1] + arr[i] : arr[i]; max_num = d..

공부/백준 2020.11.27

백준 2565번: 전깃줄(C++)

www.acmicpc.net/problem/2565 2565번: 전깃줄 첫째 줄에는 두 전봇대 사이의 전깃줄의 개수가 주어진다. 전깃줄의 개수는 100 이하의 자연수이다. 둘째 줄부터 한 줄에 하나씩 전깃줄이 A전봇대와 연결되는 위치의 번호와 B전봇대와 연결되는 www.acmicpc.net 코드 #include using namespace std; int line[501] = {0, }; int dp[501] = {0, }; int n; int min_idx = 1000; int max_idx = -1000; void init(){ cin >> n; int idx; for(int i=0; i> idx; min_idx = idx ..

공부/백준 2020.11.26
반응형