전체 글(301)
-
[중급 알고리즘] Brute Force 연습 1
💚 17070 파이프 옮기기 1 파이프가 2개의 칸에 걸쳐있어도 알고리즘 풀이에는 파이프의 오른쪽 칸으로만 파악하면 된다. 방향이 제한되어있기 때문이다. 방법의 수가 $10^6$ 이하이므로 Brute Force 탐색이 가능하다. 조금 비효율적으로 반복되는 코드를 작성했더니 역시나 실수가 자주 발생해서 디버깅에 시간이 더 오래 걸렸다. #include #include // 10^6 이하이기 때문에 브루트 포스 가능 using namespace std; // 오른쪽, 아래, 오른쪽 아래 int dr[] = {0, 1, 1}; int dc[] = {1, 0, 1}; int n; bool inside(int r, int c) { return r >= 0 && r = 0 && c < n; } i..
2022.06.09 -
3장. 활성화 함수(Step Function)
입력 신호의 총합을 출력 신호로 변환하는 함수를 일반적으로 활성화 함수라 한다. 이름이 말해주듯 활성화 함수는 입력 신호의 총합이 활성화를 일으키는지를 정하는 역할을 한다. $b$는 편향을 나타내는 매개변수로 뉴런이 얼마나 쉽게 활성화되는지를 제어한다. $w$는 각 신호의 가중치를 나타내는 매개변수로 각 신호의 영향력을 제어한다. $a = b + w_1x_1 + w_2x_2$ $y = h(a)$ 활성화 함수는 임계값을 경계로 출력이 바뀌는데 이런 함수를 계단 함수라 한다. 그래서 퍼셉트론에서는 활성화 함수로 계단 함수를 이용한다라 할수 있다. 즉 활성화 함수로 쓸 수 있는 여러 후보 중에서 퍼셉트론은 계단 함수를 채용하고 있다. 그렇다면 계단 함수 이외의 함수는 무엇이 있을까? 📈 시그모이드 함수 지금까..
2022.06.08 -
[중급 알고리즘] Brute Force 문제
💚 16968 차량 번호판 1 - 차량 번호판은 길이가 4이하이면서, c와 d로 이루어진 문자열 - c는 문자, d는 숫자 - 같은 문자나 숫자가 두 번 연속해서 나타나면 안된다. - 가능한 차량 번호판의 개수를 구하는 문제 - 전체 경우의 수를 살펴보는 것이 가능하다. - 조합을 해결해 풀 수도 있다.(난 처음에 바로 이걸 생각했다.) 예를 들어 cccc인 경우에는 $26 \times (26 - 1) \times (26 - 1) \times (26 - 1) \times (26 - 1) $ ccdd인 경우에는 $26 \times (26 - 1) \times 10 \times (10 -1)$ #include using namespace std; int go(string &s, int index, char ..
2022.06.07 -
[Codeforces] Cirno's Perfect Bitmasks Classroom
https://codeforces.com/contest/1688/problem/A https://codeforces.com/contest/1688/problem/A codeforces.com 단순하게 패턴을 파악하면 되는 문제이다. 주어진 $x$와 AND 연산, XOR 연산에서 모두 0을 초과하는 값을 내는 최소의 양의 정수를 찾아야 한다. 그러면 AND 연산과 XOR 연산에서 각각 0을 초과할 수 있되 가장 작은 수를 만들 수 있는 패턴을 파악해보자. AND 연산 $x$의 이진수를 표현했을 때, 1로 표시되는 자릿수 중 가장 작은 자릿수에서 1 XOR 연산 $x$의 이진수를 표현했을 때, 0으로 표시되는 자릿수 중 가장 작은 자릿수에서 1 $x$의 이진수를 표현했을 때, 1로 표시되는 자릿수 중에서 0..
2022.06.06 -
[Codeforces] Manipulating History
https://codeforces.com/problemset/problem/1688/C https://codeforces.com/problemset/problem/1688/C codeforces.com 문제 풀이방법도 어려웠지만, 문제 이해도 힘들었다...흑흑 최초의 문자로부터 시작해서 순서가 존재하는 시퀀스 $t$를 홀수 원소를 짝수 원수로 교체(replace)한다. 이렇게 교체한 후 final string인 $s$을 만든다. input data에서 $t$는 shuffle되어 제시된다. 처음에는 Brute Force하게 최초의 문자를 정하고, t 배열도 정렬해야하나 싶었다. 하지만 힌트에 의하면 그렇게 일일이 시도할 필요가 없다고 한다. Hint 1. You do not need to know anyt..
2022.06.06 -
[백준] 21610: 마법사 상어와 비바라기
https://www.acmicpc.net/problem/21610 21610번: 마법사 상어와 비바라기 마법사 상어는 파이어볼, 토네이도, 파이어스톰, 물복사버그 마법을 할 수 있다. 오늘 새로 배운 마법은 비바라기이다. 비바라기를 시전하면 하늘에 비구름을 만들 수 있다. 오늘은 비바라기 www.acmicpc.net 알고리즘도 중요하지만 복잡한 구현 과정에서 실수하지 않는 것도 중요한 것 같다. 그래서 틈틈이 2차원 배열에서 원소들을 이동하는 문제를 풀어보았다. 가장 먼저 순서대로 주어진 일을 수행해야 한다. 이를 제대로 파악하기 위해 나는 함수별로 주어진 일을 나누었다. - move → 구름의 이동 및 구름의 물의 양 증가 - copy_bug → 물복사 버그 - make_cloud → 구름 생성 여기..
2022.06.06