본문 바로가기
반응형

문제풀이27

백준 1929번 - 소수 구하기 C++ 문제 알고리즘 분류 : 에라토스테네스의 체 해결 방법 : 에라토스테네스의 채를 구현하면 끝나는 문제. 아쉬웠던 점 글을 쓰며 생각이 들었는데, Num 배열 또한 절반만 사용할 수 있었는데 그러지 않아서 아쉽다. 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 #include using namespace std; bool Num[1000001] = {}; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int Start, End; cin >> Start >> End; for (int i = 3; i 2021. 4. 8.
백준 7562번 - 나이트의 이동 (C++) 문제 알고리즘 분류 : 너비 우선 탐색(BFS) 접근 방법 BFS를 몰라서 검색해봤다. 만들기는 매우 쉬웠던 것 같다. (youtu.be/_hxFgg7TLZQ?t=193이거 3분 13초 ~ 5분까지 봤음.) BFS는 깊이를 기준으로 깊이가 1인 노드 탐색 -> 2인 노드 탐색 -> 3인 노드 탐색... 으로 진행되는데, 여기서 깊이(자식) = 체스말의 이동 횟수라고 생각하면 금방 해결할 수 있는 문제였다. 탐색 순서는 사실 한번 이동해서 갈 수 있는곳 -> 두번 이동해서 갈 수 있는곳 -> 세번 이동해서 갈 수 있는... 이런식으로 상당히 비효율적으로 진행되는 것 같다. 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 .. 2021. 4. 7.
백준 2504번 - 괄호의 값 (C++) 문제 구현 방법 각 괄호마다 괄호 내부의 숫자들을 곱해주기 위하여 재귀를 통하여 구현했다. 크게 세 단계로 구성되어있으며, 먼저 붙어있는 괄호들을 A2B/A3B형식으로 숫자로 바꾸어준다. AB는 2 3 이 23인지 2와 3인지 숫자끼리 구분하기 위하여 덧붙였다. 그리고 이 과정에서 괄호의 갯수를 세며 존재가 불가능한지 판단한다. 이후 재귀를 돌며 괄호를 만나면 해당 괄호가 끝날때까지 그 사이에 있는 A?B에 괄호별 값을 곱해준다. 이때 string에서의 곱 이기 때문에 정수로 변환 후 곱한 후 해당 결과를 삭제->중간 삽입 하는 과정을 거쳐서 곱연산을 하게 되었다. 이를 재귀로 반복하여 문자열의 끝까지 있는 모든 괄호에 대하여 연산을 마치고, 이후 다시 순회하며 모든 숫자들을 더해준다 아쉬웠던점 중간 삽.. 2021. 4. 4.
반응형