줌코딩의 코딩일기
Zoom in Coding
-
(백준 알고리즘 문제풀이) 1406번 에디터
문제 문제 링크 어떻게 접근할 것인가? 더블링크드리스트를 이용해야 한다. 실제로 구현하기 보다 있는 알고리즘을 활용했다. 맨앞과 맨뒤에 더미를 넣어줌으로써 각 과정을 단순하게 했다. 더블링크드리스트 정리 자료 코드 #include <string> #include <iostream> #include <vector> #include <cstdlib> using namespace std; struct Node { char data = ' '; Node* next, * prev;...
-
(백준 알고리즘 문제풀이) 1158번 조세퍼스 문제
문제 문제 링크 어떻게 접근할 것인가? 앞서 구현해 놓은 링크드리스트를 활용해서 돌면서 찾고 제거하고를 반복할 수 있게 하였다. 링크드리스트 정리 자료 코드 #include <string> #include <iostream> #include <vector> #include <cstdlib> using namespace std; struct Node { int data = 0; Node* next, * prev; Node() { next = prev =...
-
(백준 알고리즘 문제풀이) 13171번 A
문제 문제 링크 어떻게 접근할 것인가? 이 문제는 일단 숫자의 범위가 한정되어 있다는 데서 문제의 접근이 시작된다. 숫자의 범위가 한정되어 있기 때문에 곱셈을 매번해주는 것은 한계가 있다. 미리 문제에서 말했듯이 곱셈을 하고 모드하는 것과 각각을 모드한 다음에 곱셈을 한 결과를 모드한 것이 같다. 때문에 계속해서 곱셈하기 전에 각각을 모드하고 난...
-
(백준 알고리즘 문제풀이) 4307번 개미
문제 문제 링크 어떻게 접근할 것인가? 이거는 아이디어가 중요하다. 개미가 부딪히고 방향을 전환할 것이므로 사실상 한쪽 끝에서 제일 먼 개미가 제일 늦게 나올 것이다. 그래서 끝에서 가까운 개미가 먼저 나오고 가까운 끝 말고 반대에서 가장 먼 개미가 제일 늦게 나온다. 코드 #include <string> #include <vector> #include <iostream> #include <algorithm> using...
-
(백준 알고리즘 문제풀이) 1992번 퀴드트리
문제 문제 링크 어떻게 접근할 것인가? 이건 Recursive로 쪼갠다음에 결과값을 확인하고 Return 해주는 식으로 하는 문제이다. 코드 #include <string> #include <vector> #include <iostream> #include <algorithm> using namespace std; char** arr; string divide(int n, int startx, int starty){ if(n == 1) { string x = ""; x+=arr[startx][starty]; return x; } string...