[기초] 날짜 계산, 리모컨, 테트로미노 날짜 계산 1476 리모컨 1107 최선의 숫자 버튼을 누른다. / - 둘 중 하나의 버튼만을 x 번 누른다. -> 불필요한 중복적인 경우를 없애는 것이다. 1번에서 어떤 채널로 이동할지 알 수 없기 때문에, 브루트 포스를 이용해서 모든 방법을 계산해보는 것 이다. 그렇게 한다면 2번의 경우는 연산을 통해 바로 구할 수 있다. 테트로미노 14500 알고리즘 & 코딩 테스트/code.plus 4년 전
3085 사탕 게임 사탕게임 (3085) 풀이코드 #include #include #include #include #include #include using namespace std; // 3085 사탕 게임 const int MAX = 50; int N; int longestRowColumn(vector& board){ int max = -1; for(int i = 0; i < N; i++){ int cnt = 1; for(int j = 1; j < N; j++){ if(board[i][j] == board[i][j - 1]) cnt++; else {cnt = 1;} if(max < cnt) max = cnt; } } for(int i = 0; i < N; i++){ int cnt = 1; for(int j = 1; j .. ps/브루트 포스 4년 전
2309 일곱 난쟁이 일곱 난쟁이 (2309) 풀이코드 #include #include #include #include #include #include using namespace std; // 2309 일곱 난쟁이 const int MAX = 100; vector hobits; int main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int sum = 0; for(int i = 0; i > tmp; hobits.push_back(tmp); sum += hobits[i]; } sort(hobits.begin(), hobits.end()); for(int i = 0; i < 9; i++){ .. ps/브루트 포스 4년 전
[기초] 브루트 포스 브루트 포스는 모든 경우의 수를 다 해보는 것이다. 가장 중요한 것은, 문제의 경우의 수가 전부 몇가지인지 알아보는 것이다. 브루트 포스를 위해 3가지 단계를 생각해볼 수 있다. 문제의 가능한 경우의 수를 계산 : 코드 x / 사람이 직접 계산 가능한 모든 방법을 다 만들어본다. 각각의 방법을 이용해 답을 구해본다. 시간 복잡도 = O(방법의 개수 X 시도하는 복잡도) 재귀 호출을 사용 하는 방법이 가장 중요하다. 일곱 난쟁이 2309 아홉 명 중에 2명을 고르는 과정 O(N^2) 나머지 7명의 난쟁이의 키의 합을 구하는 과정 O(N) (직접 연산을 통해 O(1) 로도 가능) 사탕 게임 3085 인접한 두 칸을 고르고, (-> 한 칸을 고르고, 4개의 인접 칸 고르기) 사탕을 교환한다. 라는 방법이 쓰여.. 알고리즘 & 코딩 테스트/code.plus 4년 전
[기초] 나머지 연산, 약수, 최대공약수, 소수 나머지 연산 어떠한 수 M 으로 나눈 나머지를 답으로 출력하라는 문제가 있다면 (자료형의 범위를 초과하기 때문에), 계산마다 항상 나누어주면 된다. 사칙연산 중에서 덧셈과 곱셈, 뺄셈은 이에 항상 성립한다. 뺄셈의 경우에서는 음수를 주의해야한다. 나누기에는 성립하지 않는다 최대공약수 유클리드 호제법 이용. a를 b로 나눈 나머지를 r 이라고 하였을 때, GCD(a,b)=GCD(b,r) 이다. 알고리즘 & 코딩 테스트/code.plus 4년 전