Algorithms (42) 썸네일형 리스트형 [종만북] 6장. 완전 탐색 (1) 원소 고르기, BOGGLE 1. 예제: n개의 원소 중 m개를 고르는 모든 경우의 수 찾기 #include using namespace std; void printPicked(vector& picked) { for (int p : picked) { cout > t; while (t--) { wordmap.resize(5); for (int i = 0; i > wordmap[i][j]; } int n; cin >> n; while (n--) { string str; cin >> str; bool isFind = false; for (int i = 0; i < 5; i++) { for (int j = 0; j < 5.. [PS] 백준 #1708. 볼록 껍질 문제 정보 난이도: 플래티넘 V 문제 주소: https://www.acmicpc.net/problem/1708 이 문제를 푼 이유: 300번째 문제 기념 문제 다각형의 임의의 두 꼭짓점을 연결하는 선분이 항상 다각형 내부에 존재하는 다각형을 볼록 다각형이라고 한다. 아래 그림에서 (a)는 볼록 다각형이며, (b)는 볼록 다각형이 아니다. 조금만 생각해 보면 다각형의 모든 내각이 180도 이하일 때 볼록 다각형이 된다는 것을 알 수 있다. 편의상 이 문제에서는 180도 미만인 경우만을 볼록 다각형으로 한정하도록 한다. 2차원 평면에 N개의 점이 주어졌을 때, 이들 중 몇 개의 점을 골라 볼록 다각형을 만드는데, 나머지 모든 점을 내부에 포함하도록 할 수 있다. 이를 볼록 껍질 (CONVEX HULL) 이라.. [PS] 백준 #14502. 연구소 문제 정보 난이도: 골드 V 문제 주소: https://www.acmicpc.net/problem/14502 이 문제를 푼 이유: 브루트포스 연습 문제 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크기가 N×M인 직사각형으로 나타낼 수 있으며, 직사각형은 1×1 크기의 정사각형으로 나누어져 있다. 연구소는 빈 칸, 벽으로 이루어져 있으며, 벽은 칸 하나를 가득 차지한다. 일부 칸은 바이러스가 존재하며, 이 바이러스는 상하좌우로 인접한 빈 칸으로 모두 퍼져나갈 수 있다. 새로 세울 수 있는 벽의 개수는 3개이며, 꼭 3개를 세워야 한다. 예를 들어, 아래와 같이 연구소가 생.. [PS] 백준 #21937. 작업 문제 정보 난이도: 실버 I 문제 주소: https://www.acmicpc.net/problem/21937 이 문제를 푼 이유: 그룹 연습 Div 2 문제 민상이는 자신이 해야할 작업 $N$개를 아래와 같이 작업 순서도로 그려보았다. 위 그림에서 5번 작업을 하기 위해 제일 먼저 2번 작업을 끝내야 하고 그 다음으로 4번 작업을 끝내야 5번 작업을 할 수 있다. 3번 작업은 먼저 해야하는 작업이 없으므로 3번 작업을 바로 시작 할 수 있다. 작업 순서를 정할때 위배되는 작업 순서는 없다. 예를 들어, A 작업을 하려면 B 작업을 먼저 해야하고, B 작업을 해야하기 전에 A 작업을 해야하는 상황은 없다. 민상이는 오늘 반드시 끝낼 작업 $X$가 있다. 민상이가 작업 $X$ 을 끝내기 위해서 먼저 해야하는.. [PS] 백준 #16564. 히오스 프로게이머 문제 정보 난이도: 실버 I 문제 주소: https://www.acmicpc.net/problem/16564 이 문제를 푼 이유: 그룹 연습 Div 2 문제 성권이는 Heroes of the Storm 프로게이머 지망생이다. 이 게임에는 총 N개의 캐릭터가 있다. 그리고 현재 각 캐릭터의 레벨은 Xi이다. 성권이는 앞으로 게임이 끝날 때까지, 레벨을 최대 총합 K만큼 올릴 수 있다. 팀 목표레벨 T =min(Xi) (1 ≤ i ≤ N)라고 정의하면, 게임이 끝날 때까지 성권이가 달성할 수 있는 최대 팀 목표레벨 T는 무엇인가? 예를 들어, N = 3, X1= 10, X2= 20, X3= 15이고 K = 10일 때, X1을 7만큼 올리고 X3을 2만큼 올리면 최소 레벨 Xi는 17이 된다. 따라서 팀 목표.. [PS] 백준 #19949. 영재의 시험 문제 정보 난이도: 실버 III 문제 주소: https://www.acmicpc.net/problem/19949 이 문제를 푼 이유: 그룹 연습 Div 2 문제 컴퓨터공학과 학생인 영재는 이번 학기에 알고리즘 수업을 수강한다. 평소에 자신의 실력을 맹신한 영재는 시험 전날까지 공부를 하지 않았다. 당연하게도 문제를 하나도 풀지 못하였지만 다행히도 문제가 5지 선다의 객관식 10문제였다. 찍기에도 자신 있던 영재는 3개의 연속된 문제의 답은 같지 않게 한다는 자신의 비법을 이용하여 모든 문제를 찍었다. 이때 영재의 점수가 5점 이상일 경우의 수를 구하여라. 문제의 점수는 1문제당 1점씩이다. 나의 풀이 이 문제는 표본 공간을 탐색하다가 특정 조건을 만족하면 컷오프를 하는 형태로 만들어야겠다고 생각했다. g.. [PS] 백준 #17390. 이건 꼭 풀어야 해! 문제 정보 난이도: 실버 III 문제 주소: https://www.acmicpc.net/problem/17390 이 문제를 푼 이유: 그룹 연습 Div 2 문제 숭실골 높은 언덕 깊은 골짜기에 출제로 고통 받는 욱제가 살고 있다! 욱제는 또 출제를 해야 해서 단단히 화가 났다. 그래서 욱제는 길이 N짜리 수열 A를 만들고, A를 비내림차순으로 정렬해서 수열 B를 만들어 버렸다!! 여기서 B를 출력하기만 하면 문제가 너무 쉬우니까 하나만 더 하자. 아래와 같은 질문이 무려 Q개나 주어진다!! (ㅎㅎ;; ㅈㅅ.. ㅋㅋ!!) L R: BL + BL+1 + ... + BR-1 + BR 을 출력한다. Figure 1. 모든 참가자가 문제를 풀 수 있을 것이라고 기대하는 욱제의 표정 욱제의 질문에 답하고 함께 엠티.. [PS] 백준 #4673. 셀프 넘버 문제 정보 난이도: 실버 V 문제 주소: https://www.acmicpc.net/problem/4673 이 문제를 푼 이유: 브루트포스 연습 문제 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, 이 수를 시작해서 n, d(n), d(d(n)), d(d(d(n))), ...과 같은 무한 수열을 만들 수 있다. 예를 들어, 33으로 시작한다면 다음 수는 33 + 3 + 3 = 39이고, 그 다음 수는 39 + 3 + 9 = 51, 다음 수는 51 + 5 + 1 = 57이다. 이런식으로 다음과 같은 수열을 만들 .. 이전 1 2 3 4 5 6 다음