본문 바로가기

Practice & Study/백준 문제풀이

(6)
boj 14888 연산자 끼워넣기 (python) 어려...어려워 다른 분들은 어떨지 모르겠지만 dfs 배운지가 언제더라... 굴려라 맷돌! 지금껏 게을리 공부하던 날 머쓱해하며 계속 하면 나아지겠지 암튼 (〃⌒▽⌒〃)ゝ 조건_ 1. 연산자 우선순위를 무시하고 앞에서부터 계산을 진행한다. 2. 나눗셈은 정수 나눗셈으로 몫만 취한다. 3. 음수를 양수로 나눌 때는 C++14의 기준을 따라, 양수로 바꾼 뒤 몫을 취하고 그 몫을 음수롤 바꾼다. 구해야 하는 것_ N개의 수와 N-1개의 연산자가 주어졌을 때, 만들 수 있는 식의 결과가 최대인 것과 최소인 것의 값 출력 풀이_ 크게 두 가지 방법이 있다. (둘 다 전수조사이다) 첫번째, 순열을 사용하여 두번째, DFS를 사용하여 모든 경우의 수를 구해보는 것. (백트레킹) *백트레킹(Backtracking) ..
boj 2309 일곱 난쟁이 (python) 문제 요약_ 9명의 난쟁이의 키카 주어졌을 때, 키의 합이 100되는 일곱 난쟁이를 찾아라! import sys dwarf = [] sum = 0 for i in range(9): n = int(sys.stdin.readline()) dwarf.append(n) sum += n tmp = sum dwarf.sort() breakPointer = 0 for i in range(8): if breakPointer == 1: break for j in range(i + 1, 9): sum -= dwarf[i] sum -= dwarf[j] if sum == 100: del dwarf[i] del dwarf[j - 1] breakPointer = 1 break else : sum = tmp for i in dwa..
boj 1158 요세푸스 문제 (python) 문제 中 1번부터 N번까지 N명의 사람이 원을 이루면서 앉아있고, ~ => 원은 시작과 끝이 없다. 이는 양방향으로 생각할 수 있다. 그러므로 덱을 사용할 수 있다. (7, 3)-요세푸스 순열은 이다. => 1 2 3 4 5 6 7 4 5 6 7 1 2 7 1 2 4 5 ... 이런식이다. 첫번째, 두번째 수를 오른쪽으로 넣어주고, 3번째 수가 가장 왼쪽에 오면 덱의 가장 왼쪽의 값을 pop하면 된다. from collections import deque import sys n, k = sys.stdin.readline().split() n = int(n) k = int(k) deq = deque([i for i in range(1, n+1)]) print('')
boj 1978 소수 찾기 (c++) #include using namespace std; int main(int argc, const char * argv[]) { ios_base::sync_with_stdio(false); cin.tie(NULL); int N; cin>> N ; int *array = new int[N]; for (int i = 0; i > array[i]; } int cnt = 0; for (int i = 0; i < N; i++) { int j; for (j = 0; j < array[i] - 1; j++){ if (array[i] % (j + 2) == 0) { break; } } if(array[i] == (j + 2)) { cnt++; } } cout
boj 1011 Fly me to the Alpha Centauri (c++) #include #include using namespace std; int main(int argc, const char * argv[]) { ios_base::sync_with_stdio(false); cin.tie(NULL); int T; cin >> T; for(int i = 0; i > x >> y; long long distance = y - x; int j = 1; int cnt = 0; int idx = 0; while(idx == 0){ if(distance == pow(j, 2)){ cnt = 2 * j - 1; idx = 1; distance = 0; } else if(distance > pow(j, 2) && distance..
boj 10757 큰 수 A + B (c++) 파이썬 같은 언어는 10,000자리 정도의 자연수도 자유롭게 다룰 수 있습니다. 하지만 C/C++이라면 이 문제를 어떻게 풀까요? C/C++ 사용자가 아니더라도 고민해 보면 좋을 것입니다. -> 문제의 부연설명으로 C++의 자연수 자릿수에 대한 이야기가 있었다. #include #include using namespace std; int main(int argc, const char * argv[]) { ios_base::sync_with_stdio(false); cin.tie(NULL); int A[100001], B[100001], rslt[100001]; int carry = 0; string s1, s2; cin >> s1 >> s2; for(int i = 0; i < s1.length(); i+..