BruteForce 9

HackerRank : Largest Rectangle

Largest Rectangle | HackerRank Given n buildings, find the largest rectangular area possible by joining consecutive K buildings. www.hackerrank.com 문제 요약 건물의 갯수와 각 건물의 높이가 주어집니다. 일렬로 나열된 건물에서 안정적인 사각형 지대를 찾으려고 합니다. 사각형의 값은 아래 공식으로 구합니다. k * min(h[i], h[i+1], ... , h[i+k-1]) 쉽게 말해 가장 큰 넓이를 가진 사각형이 안정적인 사각형 지대가 됩니다. 핵심 요약 위 문제는 stack, queue의 유형으로 분리되어있지만, 단순 Brute Force를 통해서도 접근이 가능합니다. 핵심을 요약하면 다..

백준 6987번 월드컵 (C++)

문제 링크 : https://www.acmicpc.net/problem/6987 6987번: 월드컵 월드컵 조별 최종 예선에서는 6개국으로 구성된 각 조별로 동일한 조에 소속된 국가들과 한 번씩, 각 국가별로 총 5번의 경기를 치른다. 조별리그가 끝난 후, 기자가 보내온 각 나라의 승, 무승부 www.acmicpc.net 문제 요약 1. 6개의 팀이 서로 한 번씩 경기를 진행합니다. 승부의 결과는 승리 / 무승부 / 패배 3가지 입니다. 2. 4개의 테스트 케이스가 주어졌을때, (테스트 케이스 1줄 당 18개의 숫자가 입력됨) 해당 테스트 케이스가 가능한 경우인지 확인하세요. 3. 주어진 4개의 테스트에 대하여 가능한 경우 1을, 불가능한 경우 0을 공백을 한칸씩 띄고 출력하세요. 핵심 포인트 불가능한 ..

백준 14658번 하늘에서 별똥별이 빗발친다 (C++)

문제 링크 : https://www.acmicpc.net/problem/14658 14658번: 하늘에서 별똥별이 빗발친다 첫째 줄에 네 정수 N, M, L, K가 주어진다. (1 ≤ N, M ≤ 500,000, 1 ≤ L ≤ 100,000, 1 ≤ K ≤ 100) N은 별똥별이 떨어지는 구역의 가로길이, M은 세로길이, L은 트램펄린의 한 변의 길이, K는 별똥별의 수를 www.acmicpc.net 문제 요약 1. n*m의 배열에는 k개의 별똥별이 떨어집니다. (1 l >> k; int y,x,ny,nx,ans=0,cnt=0; vector v(k); for(int i=0; i> x >> y; v[i] = {x,y}; } 2. 별똥별의 갯수만큼 3중 for문을 돌립니다. for(int i=0; i> l ..

프로그래머스 거리두기 확인하기 (C++)

문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/81302 코딩테스트 연습 - 거리두기 확인하기 [["POOOP", "OXXOX", "OPXPX", "OOXOX", "POXXP"], ["POOPX", "OXPXP", "PXXXO", "OXXXO", "OOOPP"], ["PXOPX", "OXOXP", "OXPOX", "OXXOP", "PXPOX"], ["OOOXX", "XOOOX", "OOOXX", "OXOOX", "OOOOO"], ["PXPXP", "XPXPX", "PXPXP", "XPXPX", "PXPXP"]] [1, 0, 1, 1, 1] programmers.co.kr 문제 요약 1. places에 5개의 대기실이 순서대로 저장되어있으며, 각 ..

백준 2615번 오목 (C++)

문제 링크 : www.acmicpc.net/problem/26152615번: 오목오목은 바둑판에 검은 바둑알과 흰 바둑알을 교대로 놓아서 겨루는 게임이다. 바둑판에는 19개의 가로줄과 19개의 세로줄이 그려져 있는데 가로줄은 위에서부터 아래로 1번, 2번, ... ,19번의 번호www.acmicpc.net이 문제는 실버3지만 정답률이 21.434%이며, 어지간한 골드 상위권 레벨보다도 정답률이 낮다.그도 그럴게 문제를 대충 읽었다가는 무조건 틀릴 수 밖에 없는 구조이기 때문이다. 문제에서 유의사항은 다음과 같다. 여기서 특히나 1번과 4번이 중요하다.1. 5목이 아닌 6목일 경우 이긴게 아니다.2. 동시에 흑과 백이 이기는 판은 나오지 않는다.3. 흑이 여러곳에서 이기거나, 백이 여러곳에서 이기는 판은 ..

백준 2529번 부등호 (C++)

문제 링크 : www.acmicpc.net/problem/2529 2529번: 부등호 두 종류의 부등호 기호 ‘’가 k개 나열된 순서열 A가 있다. 우리는 이 부등호 기호 앞뒤에 서로 다른 한 자릿수 숫자를 넣어서 모든 부등호 관계를 만족시키려고 한다. 예를 들어, 제 www.acmicpc.net 전형적인 백 트래킹 - 브루트포스 알고리즘이다. 구체적인 설명은 생략하나, 만약 다음과 같은 오답을 겪을 경우 참고사항을 적는다. 먼저 이 문제는 부등호가 9개까지 사용되어 최대 10자리 수가 나올 수 있으므로, 값의 범위를 잘못 지정할 경우 오답을 겪을 수 있다. 1. 런타임 에러 (out of range) 저장된 문자열을 숫자로 바꾸는 과정에서, 만약 숫자형을 int로 할 경우 겪을 수 있다. int가 아니..

#17136번 색종이 붙이기 (C++)

문제 링크 : www.acmicpc.net/problem/17136 17136번: 색종이 붙이기 과 같이 정사각형 모양을 한 다섯 종류의 색종이가 있다. 색종이의 크기는 1×1, 2×2, 3×3, 4×4, 5×5로 총 다섯 종류가 있으며, 각 종류의 색종이는 5개씩 가지고 있다. 색종이를 크 www.acmicpc.net 먼저 이 문제의 유형이 Brute Force임을 기억하자. 즉, 모든 가짓수를 고려해서 하나하나 테스트 해봐야한다는 뜻이다. 만약 2*2 색종이가 딱 들어 맞는다해도, 다른 영역에서 4*4를 써서 해당 영역을 더는게 효과적이다면 2*2가 아닌 1*1을 활용하는 것이 정답일 수도 있다. 때문에 모든 가짓수를 고려해야하는데, 이 점을 간과해서 나는 테스트 케이스 7번에서 실패하고 말았다. 잘..

#1107번 리모컨 (C++)

문제 링크 : www.acmicpc.net/problem/1107 1107번: 리모컨 첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼 www.acmicpc.net 문제 풀이는 다음과 같다. 1. +-버튼만을 이용해서 채널을 이동하는 경우 ans = n-100; // 1. +-버튼만 눌러서 움직이는 경우 if(ans0){ if(ch[c%10]) return 0; c/=10; len++; } return len; } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(N..

#3085번 사탕 게임 (C++)

문제 링크 : www.acmicpc.net/problem/30853085번: 사탕 게임첫째 줄에 상근이가 먹을 수 있는 사탕의 최대 개수를 출력한다.www.acmicpc.net문제 풀이는 다음과 같다.1. 가로, 세로 별로 Brutce Force를 통해 두 자리씩 자리를 바꿨을때 나오는 함수(go)를 구현해준다.2. go를 통해 최대값을 갱신해준다. #include #include #include using namespace std; int n=0, maxi=0; void go(vector &v){ int temp = 1; // 가로 for(int i=0; i n; vector v(n); for(int i=0; i> v[i]; } // 가로 for(int i=0; i