목록브루트포스 (8)
어흥
문제 링크: https://www.acmicpc.net/problem/15997 15997번: 승부 예측 첫 번째 줄에 조별리그를 진행할 국가명 네 개가 공백으로 구분되어 주어진다. 주어지는 모든 국가명은 알파벳 대문자로만 구성된 길이가 1 이상 10 이하인 문자열이다. 두 번째 줄부터 일곱 번 www.acmicpc.net 1. 주의할 점 - 브루트포스를 통해 구하지만, 3^6 전부를 돌리지 않아도 된다 - 독립 사건 → 확률을 곱하면서 진행 2. 구현 - Map을 통해 각 문자열에 매칭되는 번호를 저장한다 - Matches[idx]를 통해 idx번째 경기에 누가 참가하는지 저장핟나 - WinRate[idx][]를 통해 idx번째 경기의 승무패 확률을 저장한다 - DFS를 수행하여 최대 6번의 경기를 치..
문제 링크: www.acmicpc.net/problem/13908 13908번: 비밀번호 첫 번째 예제의 경우 가능한 비밀번호의 조합은 07, 17, 27, 37, 47, 57, 67, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 87, 97이다. 두 번째 예제의 경우 가능한 비밀번호의 조합은 34, 43이다. www.acmicpc.net 1. 주의할 점 - 메모리 제한이 있으므로 Set을 이용하지 않도록 한다 2. 구현 - 7!의 연산을 수행해도 1초에 도달하지 못하기 때문에 브루트포스로 접근해도 상관없다(상황마다 다르지만, 약 10!가 1초로 알고있습니다) - 필요로 하는 수를 V 벡터에 담는다 - DFS()를 수행하며 Str의 길이가 N이 되었다면 V에서 필요로 하는 모든..
문제 링크: www.acmicpc.net/problem/14391 14391번: 종이 조각 영선이는 숫자가 쓰여 있는 직사각형 종이를 가지고 있다. 종이는 1×1 크기의 정사각형 칸으로 나누어져 있고, 숫자는 각 칸에 하나씩 쓰여 있다. 행은 위에서부터 아래까지 번호가 매겨져 있고, www.acmicpc.net 1. 주의할 점 - 최대 4*4이므로, 브루트포스 알고리즘을 사용한다 - 사용한 숫자처리를 제대로 하면 된다 2. 구현 - 배열을 입력받은 후, 왼쪽위 원소부터 브루트포스를 수행한다 - 브루트포스는 다음과 같은 순서로 진행된다. 해당 원소만 포함, 해당 원소포함 + 아래숫자들 포함, 해당 원소포함 + 오른쪽 숫자들 포함 - 단, 위의 기준은 항상 추가할 숫자가 방문처리되어 있지 않다는 가정하에 진..
문제 링크: https://www.acmicpc.net/problem/17779 17779번: 게리맨더링 2 재현시의 시장 구재현은 지난 몇 년간 게리맨더링을 통해서 자신의 당에게 유리하게 선거구를 획정했다. 견제할 권력이 없어진 구재현은 권력을 매우 부당하게 행사했고, 심지어는 시의 이름�� www.acmicpc.net 1. 주의할 점 - 각 구역을 어떤 방식으로 나눌건지 잘 계산한다 - 브루트포스를 통해 경우의 수 전부 구해본다 2. 구현 - 각 인구를 입력 받으면서 배열에서의 총합을 따로 구한다 - D1, D2의 최소 길이가 1인 것을 감안하여 DFS를 수행한다 - DFS를 수행하며 각 변이 범위밖으로 넘어가지 않는다면 브루트포스 함수인 Start()를 수행한다 - 1~4 구역까지 인구수 전부 구한..
문제 링크: https://www.acmicpc.net/problem/15661 15661번: 링크와 스타트 첫째 줄에 N(4 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에 S가 주어진다. 각 줄은 N개의 수로 이루어져 있고, i번 줄의 j번째 수는 Sij 이다. Sii는 항상 0이고, 나머지 Sij는 1보다 크거나 같고, 100 www.acmicpc.net 1. 주의할 점 - 한팀에는 최소 1명이 있을 수 있고, A팀과 B팀의 인원수는 같지 않아도 된다 - 현재 구현한 방법은 중복된 경우가 있기 때문에(X2) 시간이 2배로 든다 2. 구현 - 브루트포스를 통해 1명~N-1까지 팀을 이뤘을때 각 팀원들에 해당하는 능력치의 합을 구한다 - 브루트포스의 경우, Next_permutation 함수를 ..
문제 링크: https://www.acmicpc.net/problem/1799 1799번: 비숍 첫째 줄에 체스판의 크기가 주어진다. 체스판의 크기는 10이하의 자연수이다. 둘째 줄부터 아래의 예와 같이 체스판의 각 칸에 비숍을 놓을 수 있는지 없는지에 대한 정보가 체스판 한 줄 단위로 한 줄씩 주어진다. 비숍을 놓을 수 있는 곳에는 1, 비숍을 놓을 수 없는 곳에는 0이 빈칸을 사이에 두고 주어진다. www.acmicpc.net 1. 주의할 점 - 처음에 비숍을 안넣는게 최선일 수 있다 - 체스판과 관련된 문제는 흑백으로 나눠서 생각하도록 한다 -> 시간복잡도가 줄어든다 2. 구현 - 백색 칸과 흑색 칸을 구분해서 흑색칸일 때 최대 + 백색칸일 때 최대를 구한다 - 해당칸이 비숍을 놓을 수 있는 칸인 ..
문제 링크: https://www.acmicpc.net/problem/14405 14405번: 피카츄 피카츄는 "pi", "ka", "chu"를 발음할 수 있다. 따라서, 피카츄는 이 세 음절을 합친 단어만 발음할 수 있다. 예를 들면, "pikapi"와 "pikachu"가 있다. 문자열 S가 주어졌을 때, 피카츄가 발음할 수 있는 문자열인지 아닌지 구하는 프로그램을 작성하시오. www.acmicpc.net 1. 주의할 점 - 3가지 단어 말고 다른 문자로 시작해도 NO 출력시켜야한다. 2. 구현 - Idx=0을 기준으로 입력받은 String에서 Idx번째 문자가 셋중 하나와 같으면 나머지 또한 같은지 비교한다. - 셋과 모두 다르다면 While문을 빠져오도록 설계한다. #include #include ..
문제 링크: https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXGGNB6cnEDFAUo SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1. 주의할 점 - 숫자 하나씩 직접 할 경우 시간초과발생 - 10^15의 마지막 자리수를 Long으로 받아오고(Integer로는 10^15자체를 선언할 수 없다), Number 배열의 Index에 접근시 런타임에러 발생(이거 때문에 2번 틀렸다) - 각 자리수의 중요성 2. 구현 (1) 백준의 1019번 문제 "책페이지"와 푸는 방법이 거의 똑같다. (2) Start와 End를 입력받..