알고리즘 문제풀이/백준
백준 14500번 - 테트로미노
www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변� www.acmicpc.net 하나 하나 블럭별로 나올수 있는 경우의 수를 계산하면, 각 블럭별로 2,1,8,4,4의 경우의 수가 된다. 이걸 전부 더하면 19가지의 블럭의 경우의 수가 나올수 있다. 이걸 전부 하나씩 해봐주면된다. 1 #include 2 using namespace std; 3 int a[500][500]; 4 int main() { 5 int n, m; 6 cin >> n >> m; 7 for (int i=0; i a[..
백준 1476번 : 날짜 계산
www.acmicpc.net/problem/1476 1476번: 날짜 계산 준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타�� www.acmicpc.net #include using namespace std; int main() { int E,S,M = 0; cin >> E >> S>> M; E -=1; S -=1; M -=1; int i = 0; while(1){ if( (i%15 == E) &&(i%28 == S) && (i%19 == M) ){ cout
백준 3085번 - 사탕게임
전략: brute force N×N크기의테이블에사탕이있다.(N≤50) 인접한두칸을고르고,사탕을교환한다. (N의 제곱) 그다음,같은색으로이루어져있는가장긴연속부분행또는열을고르는문제 (N의 네제곱) 더 좋은 알고리즘: 자기가 건든 열과 행만 바꾼다. #include #include #include using namespace std; int check(vector colors){ int answer = 1; int size = colors.size(); for(int i = 0; i colors[i]; } int answer = 0; for(int i = 0; i
백준2309번 - 일곱 난쟁이
#include #include using namespace std; int main() { int height[9]; int total = 0; for(int i=0; i> height[i]; total = total + height[i]; } sort(height,height+9); for(int i = 0; i
백준 1316번 - 그룹단어 체커
www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때� www.acmicpc.net #include using namespace std; int main() { int input; cin >> input; string word; int result = 0; for(int i = 0; i> word; int length = word.length(); bool flag = true; for(int j = 0; j
백준 7568번 - 덩치
www.acmicpc.net/problem/7568 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x,y)로 표시된다. 두 사람 A 와 B의 덩� www.acmicpc.net #include #include #include using namespace std; struct person{ int weight; int height; int order; }; int main() { int input = 0; cin >> input; person people[input]; for(int i=0; i> people[i].weight >> people[i].height; peopl..