목록오래남는 공부/baekjoon (3)
hueam아카이브
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/baGcOv/btsFs1dj1Cx/vlol8HEfbgBmwgJQkMcj31/img.png)
1. 문제 이해 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 구하는 문제이다. 2. 문제 해결 이 문제를 본 나는 고민에 빠졌다. 최대공약수와 최소공배수를 수학책이나 문제집에서 나오게 되면 이와 같이 간단히 풀 수 있지만 이를 어떻게 코드로 옮길까 고민을 했다. 허나 이 고민은 백준의 알고리즘 분류를 보며 해결할 수 있었다. 이 문제의 알고리즘 분류는 이렇게 3가지가 있었다. 이 3가지 중 유클리드 호제법이라는 것을 몰랐고 이에 궁금증이 생겨 검색을 해봤다. 유클리드 호제법이란 두 자연수의 최대공약수를 구하는 알고리즘 중 하나였다. 그리하여 나는 이 알고리즘을 이용하여 최대공약수를 구하고 두 수의 곱 / 두 수의 최대공약수 = 최소공배수 라는 식을 이용해서 최소공배수 또한 구해주었다. 3. 소스코..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/zVRsl/btsFm2dsr0h/mgJyWxO3iNpnorAvGFodlK/img.png)
1. 문제 이해 입력한 팩토리얼의 뒤부터 0의 연속되는 0의 갯수를 찾는 문제이다 2. 문제 해결 처음 나는 이 문제를 보고 이런 생각을 하였다 팩토리얼을 만들고 나머지 10을 해서 0이 아닐 때까지 세보면 된는거 아닌가? 그런데 이걸로 안되는 이유가 한두가지가 아니였다. 길이 길이가 안된다 문제에 500!까지 나오는데 이는 longlong으로 담을 수도 없는 량이다. 시간 곱하는 건 괜찮을 수 있어도 기본적으로 자리 수가 너무 많아 나머지 10을 계속 하게되면 테스트 시간안에 끝낼 수 없다. 이러한 문제로 해결이 불가능하단걸 깨닳고 아무리 생각해도 다른 방식이 생각나질 않았다. 결국 혼자의 힘으로 해결하는 것은 포기하고 인터넷에 검색을 해봤다. 어려 사람의 해결법을 보고 제일먼저 꺠닳은 것이 있다. 공..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/emW9Ib/btsFkJyRjeW/MFk6g8Ze2wZklz3jPYRAp1/img.png)
1.문제 이해 M x N 크기의 보드를 8 x 8로 잘랐을 때 다시 칠해야 하는 최소 갯수를 구하는 문제이다. 이런식으로 보드가 들어온다. 2. 문제 해결 문제를 보고 처음에는 이렇게 생각했다. vector를 2중으로 만들어서 보드를 넣어놓고 처음부터 끝까지 돌며 한 칸을 잡고 8 x 8로 확인해 보면 되는거 아닌가? 라고 간단하게만 생각하고 코드를 짜고 예제를 풀어봤지만 몇가지 예제가 풀리지 않았다. 이유는 간단했다. 왼쪽 위부터 기준을 잡고 오른쪽 아래로 내려오기에 배열의 범위를 벗어나지 않게 전체 크기에서 -8을 하고 돌아버려 오른쪽 아래의 칸들로는 안해본 것이였다. 하지만 그대로 오른쪽 아래 칸들을 기준으로 잡고 실행해 버릴시 배열의 범위를 벗어날 것이 분명했다. 그래서 오른쪽 아래 칸들은 그 칸..