728x90

🐣 알고리즘 삐약 158

30 삐약 : 백준 10807[바킹독 문제 풀이|배열|JAVA]

https://www.acmicpc.net/problem/10807 10807번: 개수 세기 첫째 줄에 정수의 개수 N(1 ≤ N ≤ 100)이 주어진다. 둘째 줄에는 정수가 공백으로 구분되어져있다. 셋째 줄에는 찾으려고 하는 정수 v가 주어진다. 입력으로 주어지는 정수와 v는 -100보다 크거 www.acmicpc.net package BKD_0x2_Array; import java.util.Scanner; public class BOJ_10807 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int[] arr = new int[N]; for(int i=0;i

29 삐약 : 백준 3237 [바킹독 문제 풀이|배열|투포인터| JAVA]

https://www.acmicpc.net/problem/3273 3273번: 두 수의 합 n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai + aj = x (1 ≤ i < j ≤ n)을 만족하는 www.acmicpc.net 1차 시도 : 시간 초과 package BKD_0x2_Array; import java.util.Scanner; public class BOJ_3273 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[]..

[DP | Dynamic Programming] 카데인 알고리즘 Kadane's Algorithm

배열이 주어졌을때 maximum subarray 를 찾고자 한다. 본인의 경우 배열 내에서 가장 큰 값이 지속되는 구간을 찾아아 시작 인덱스와 종료 인덱스를 추출해야 했다. 시간 복잡도 O(N) 개념 각각의 최대 부분 합은 이전 최대 부분 합이 반영된 결과이다. 이전 인덱스가 가질 수 있는 최대 부분 합에 현재 인덱스 값을 더하면 현재 인덱스가 가질 수 있는 최대 부분 합을 구할 수 있음을 의미한다. 방법 각각의 인덱스 값은 이전 인덱스가 갖고 있는 최대 부분 합을 연장할지 아니면 자신의 값으로 초기화 할지 선택한다. 연장 이전 인덱스의 최대 부분합 + 현재 인덱스의 최대 부분 합 > 현재 인덱스 값 Math.max(A[i],A[i] + A[i-1]) 적용 코드 public AvailableSchedul..

28 삐약 : 백준 2577[바킹독 문제 풀이 | 배열 | JAVA]

https://www.acmicpc.net/problem/2577 2577번: 숫자의 개수 첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다. www.acmicpc.net package Array; import java.util.Scanner; public class BOJ_2577 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int[] count = new int[10]; int A = sc.nextInt(); int B = sc.nextInt(); int C = sc.nextInt(); int multiple_value..

27 삐약 : 백준 10808[바킹독 문제 풀이 | 배열 | JAVA]

https://www.acmicpc.net/problem/10808 10808번: 알파벳 개수 단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다. www.acmicpc.net package Array; import java.util.*; public class BOJ_10808 { public static void main(String args[]){ Scanner sc = new Scanner(System.in); String s = sc.next(); int[] count = new int[26]; for(char c: s.toCharArray()){ int index = c -97; count[index] +=1; } for(int i:count){ Syst..

26 삐약 : 백준 1018[브루트 포스 | C++]

https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net #include #include #include #include using namespace std; // 비교하고자 하는 문자열을 아예 저장을 한 후에 진행하였. 땨. string WB[8] = { "WBWBWBWB", "BWBWBWBW", "WBWBWBWB", "BWBWBWBW", "WBWBWBWB", "BWBWBWBW", "WBWBWBWB", "BWBWBWBW" }; string BW..

25 삐약 : 백준 7568[브루트 포스 | C++]

https://www.acmicpc.net/problem/7568 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net #include #include using namespace std; int main() { int n; cin >> n; pair arr[50]; int rank[50]; for (int i = 0; i > x >> y; arr[i] = make_pair(x, y); } for (int i = 0; i < n; i++) { int cn..

24 삐약 : 백준 2231 [브루트 포스 | C++]

https://www.acmicpc.net/problem/2231 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net #include using namespace std; int main() { int n; cin >> n; for (int i = 1; i < n; i++) { int sum = i; int temp = i; while (temp) { sum += temp % 10; temp /= 10; } if (sum == n) { cout

23 삐약 : 백준 2798 [브루트 포스 | C++]

https://www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net 브루트 포스 단계에 진입하여땨! 학기중이라 아무것도 안하고 있다가 다시 백준 문제 풀기를 시작하여땨 #include using namespace std; int main() { int n, m; cin >> n >> m; int input_arr[100]; for (int i = 0; i > input; input_..

728x90