본문 바로가기
728x90

브루트포스23

[python] 백준 17281 야구 https://www.acmicpc.net/problem/17281 17281번: ⚾ ⚾는 9명으로 이루어진 두 팀이 공격과 수비를 번갈아 하는 게임이다. 하나의 이닝은 공격과 수비로 이루어져 있고, 총 N이닝 동안 게임을 진행해야 한다. 한 이닝에 3아웃이 발생하면 이닝이 종 www.acmicpc.net 문제 해결 야구 규칙이 있고 각 이닝에 칠 수 있는 타구를 타자마다 알 수 있을 때 최고의 차순일 때 득점할 수 있는 득점 값 구하기 사실 permutations(순열)을 쓰기 부담스러웠다. (당연히 시간복잡도가 크기 때문...) 하지만 다른 방법이 없다는 것을 알았고 각 경우 득점은 시물레이션을 통해 값을 얻도록 해야한다. 타자의 기록은 베이스 이동으로 결과를 기록할 수 있다. 1,2, 3, 베이스 .. 2023. 4. 30.
[python] 백준 17471 게리맨더링 https://www.acmicpc.net/problem/17471 17471번: 게리맨더링 선거구를 [1, 4], [2, 3, 5, 6]으로 나누면 각 선거구의 인구는 9, 8이 된다. 인구 차이는 1이고, 이 값보다 더 작은 값으로 선거구를 나눌 수는 없다. www.acmicpc.net 문제 해결 삼성 A형 기출문제 딱 봐도 완전탐색 문제이다.(2 ≤ N ≤ 10, 1 ≤ 구역의 인구 수 ≤ 100) 문제는 combination을 사용하여 모든 경우의 수를 다 고민을 해야하나인데... 맞다. 1개부터 n//2 개까지 선거구를 뽑은 다음 다 연결 되었는지 확인하고 나머지 선거구끼리도 모두 연결되었는지 확인해야한다. 모두 연결이 되면 두 집단의 인구 차이를 이전과 비교해서 작은 값을 저장한다. 삼성은 i.. 2023. 4. 26.
[python] 백준 3151 합이 0 https://www.acmicpc.net/problem/3151 3151번: 합이 0 Elly는 예상치 못하게 프로그래밍 대회를 준비하는 학생들을 가르칠 위기에 처했다. 대회는 정확히 3명으로 구성된 팀만 참가가 가능하다. 그러나 그녀가 가르칠 학생들에게는 큰 문제가 있었다. www.acmicpc.net 문제 해결 3개의 수를 고르는 문제는 전형적으로 A[i] + A[j] + A[k] = c 에서 A[j] + A[k] = c - A[i]로 바꾼다. c= 0이므로 A[j]+A[k] = -A[i]를 찾는 문제 그러면 A[i]를 고정시키고 j와 k를 찾는 것이 편하다. 처음에 j= i+1 k=n-1으로 정하고 A[j]+A[k] >A[i]면 k를 내리고 A[j] + A[k] < A[i]이면 j를 올리는 식으로.. 2023. 4. 24.
[python] 백준 17142 연구소 3 https://www.acmicpc.net/problem/17142 17142번: 연구소 3 인체에 치명적인 바이러스를 연구하던 연구소에 승원이가 침입했고, 바이러스를 유출하려고 한다. 바이러스는 활성 상태와 비활성 상태가 있다. 가장 처음에 모든 바이러스는 비활성 상태이고 www.acmicpc.net 문제 해결 시물레이션 + BFS가 바로 생각나는 문제 바이러스가 전염이 되는 것과 안되는 것이 처음에 존재하므로 존재하는 것을 고르는 경우의 수 combination을 사용한다. 각각의 경우 BFS를 사용하여 벽인 부분을 빼고 계속 전염시킨다. 만약 비전염 바이러스를 만나면 비전염바이러스가 전염이 되는 것과 같다. 모두 전염이 될 때의 시간을 결과값으로 받아서 최소값을 구하면 된다. ※ ps) 전형적인 삼.. 2023. 4. 12.
728x90