브루트포스
-
백준 1924 - 2007년백준 algorithm 2020. 7. 10. 14:12
=> 구현 문제입니다. => 해당 문제의 경우 1년의 case만 생각하면 되기 때문에 brute Force(브루트 포스)로 문제를 풀어도 전혀 무방합니다. week [7] : 일주일을 저장하는 배열 index : 위의 배열을 따라다니며 요일을 확인하는 변수 X와 Y의 값을 입력받습니다. switch case문을 이용해 한 달이 31일인 경우, 30일인 경우 28일인 경우를 나눕니다. 제가 구하는 달의 일까지만 index를 지속적으로 추가해줍니다. index는 7을 벗어나지 않으므로, %7을 해주어 숫자가 커지는 것을 방지해줍니다. weel [index]의 값을 출력합니다. => 위와 같은 logic을 따라 입력받은 X월 Y일의 요일을 알아낼 수 있습니다. => 다른 사람의 경우 X 이전의 달들을 inde..
-
백준 1759 - 암호만들기백준 algorithm 2020. 6. 17. 15:44
=> 입력값의 범위가 작기 때문에 브루트 포스로 해결할 수 있습니다. ** 본인이 작성한 코드에는 정렬의 과정이 표현되어있지 않기 때문에, 함수 진입 전에 alpha vector의 sort과정이 필요합니다. #include #include #include #include using namespace std; bool check(string &password) { int conso=0; int vowel=0; for(char x : password) { if(x == 'a' || x=='e' ||x=='i' || x == 'o' || x== 'u') { vowel ++; } else{ conso++; } } return conso >= 2 && vowel >=1; } void go(int n, vector..
-
백준 1107 - 리모컨백준 algorithm 2020. 6. 2. 14:19
=> 브루트 포스 문제입니다. 이동할 채널 C를 정합니다. C에 포함되어있는 숫자 중에 고장 난 버튼이 있는지 확인합니다. 고장 난 버튼이 포함되어 있지 않다면 |C-N|을 계산해 +나 -버튼을 몇 번 눌러야 하는지를 계산합니다. => 위의 방식에 따라 문제를 풀이합니다. => 고장난 버튼을 확인하기 위해 broken []이라는 bool형 array를 사용하였습니다. => 채널은 50만이지만, 숫자 버튼을 눌러서 이동하는 채널은 100만까지 허용하여야 합니다. (현재의 위치 100 때문) => 현재 위치에서 +or -를 눌러서 타겟하는 C로가는 방법 현재 위치에서 + or -를 눌러서 타깃 C로 이동하는 방법 채널 버튼을 눌러 타겟으로 이동한 다음 버튼을 눌러 이동하는 방법 => 위의 두가지 중에 최소의..
-
백준 2309 - 일곱난쟁이백준 algorithm 2020. 5. 16. 00:56
=> Brute Force 문제이다. => 모든 경우의 수를 탐색해보면 알 수 있다. 알고리즘은 아래와 같다. 배열을 입력받으며, 전체 난쟁이(9명)들 키의 합을 구한다.(sum) 배열을 sort 시킨다. STL을 써도 무방한다. ( 이 경우, 배열의 크기 또한 정해져 있다.) 해당 배열을 i가 index 0부터 9까지 탐색한다, j는 i+1부터 9까지 탐색한다. i, j index 값을 sum에서 뺏을 때, 100이 되는 i와 j를 구한다. => 위의 방법을 통해 제외되는 두 명의 난쟁이를 구할 수 있다. *** 본인은 원하는 난쟁이를 구한 경우, 프로그램을 끝내지 않고, 모든 경우의 수를 탐색하도록 하여 여러 번 틀렸었다. *** 원하는 i와 j를 찾았을 경우, 프로그램을 중지시켜주는 것이 정답을 맞..