목록분류 전체보기 (122)
테크 로그포스 Tech Log Force
string.find를 사용하여 666문자열이 존재하는지 브루트포스로 체크했다. #include #include using namespace std; int main() { int N; cin >> N; int number = 0;//브루투포스를 돌 숫자 int cnt = 0; //찾은 개수 while (cnt < N) { number++; string str = to_string(number); if (str.find("666") != string::npos) { //666을 찾으면 cnt++; } } cout
브루트포스 문제였다. for문의 i가 정답이 될 후보들이라고 볼 수 있다. i를 1~N전까지 모두 계산해보도록 했다. %10으로 끝자리를 구하고, /10으로 계산한 끝자리를 떼어주며 반복시켜 각 자릿수를 구했다. + 첫 시도 때.. if조건문에서 분해합을 찾았으므로 탈출할 때 break;를 써줬었다.. break;는 해당 루프 단 1개만 탈출한다는 걸 깜빡 했다...그래서 return으로 바꿔줬다. #include using namespace std; int main() { int N; cin >> N; int number, sum; for (int i = 1; i < N; i++) { sum = i; number = i; while (number!=0) { sum += number % 10; numbe..
3중 for문을 이용한 브루트포스 문제다. (3개의 수를 골라야 하므로 3중 for문을 사용했다.) 합이 M을 넘지 않아야 한 다는 것을 깜빡하고 abs사용해서 절댓값이 가장 작은 걸로 구했었다...바보 #include #include using namespace std; int main() { int N, M, close=0; cin >> N >> M; vector v; for (int i = 0; i > num; v.push_back(num); } int sum=0; for (int i = 0; i < N - 2; i++) { for (int j = i + 1; j < N - 1; j++) { for (int k = j + 1; k < N; k++) { ..
머리가 팽팽 돌아가지 않는 것을 자각한 문제다 후... 어디를 공백으로 둘 건가에 초점을 맞추는 게 좋은 것 같다. 어느 좌표들이 공백인지 규칙성을 찾는 것이다. 9*9그림을 그려보면 (1,1),(1,4),(1,7),(4,1),(4,4),(4,7) 처럼 x좌표%3==1 && y좌표%3==1 인 곳들이 공백이었다. 더 나아가 큰 패턴으로 보았을 때, 패턴상의 가운데 부분이 비게 되고 이 부분을 생각해보면 x좌표/(n/3) % 3 ==1 && y좌표/(n/3) % 3 == 1 인 곳들이 공백이었다. 1,1~n,n각 좌표를 반복문으로 방문할 거고 공백부분을 위의 규칙으로 비워줄거다. 이걸 n을 계속 쪼개줘가면서 3*3패턴까지 반복 그리게 할 것이고, 그 후에 또 재귀함수가 한번 더 쪼개면 n==1이 되므로 더..