언젠간 풀고만다
문제 문제 이해 자체는 어렵지 않다. 우리가 키보드를 칠 때 Home키 누르면 입력중인 text의 맨 앞으로 cursor가 이동하고 End키를 누르면 입력중인 text의 맨 뒤로 cursor가 가게 되는데, 이를 [와]로 표현한 Text가 있는 것이다. 따라서 문자를 하나하나 읽으면서 [와 ]이 나올때마다 cursor의 위치를 바꿔야 하는데 이것을 하는 데는 list가 제격인 자료구조다. 풀이는 다음과 같다. #include #include #include using namespace std; int main() { string str; while (cin >> str&&!cin.eof()) { list result; list::iterator cursor; cursor = result.begin(); ..
문제 문제는 쉽다. 주어지는 숫자를 2진수로 봤을 때 아래 bit부터 1이 몇개가 나올텐데, 번갈아가면서 a와 b에 추가해가면 된다. 코드는 다음과 같다. #include #include using namespace std; int main() { int n,count,a,b; bitset bits; while (cin >> n) { if (n == 0) break; //terminal condition count = 0; a = 0; b = 0; bits = n; for (int i = 0; i < 32; i++) { if (bits[i] == 1) { if (count % 2 == 0) a += (1
문제 문제는 긴데 그냥 칼렌더 채우라는 거, 내 풀이가 좋은 지는 잘 모르겠음. 굳이 1000000개의 bitset을 써야하나 싶지만 competitive algorithm책에서는 그런 방법의 풀이를 제시하고 있음 #include #include using namespace std; int main() { int n, m,s,e,r; bool conflict; bitset schedules; while (cin >> n >> m) { if (n == 0 && m == 0) break;//terminal case schedules.reset(); conflict = false; for (int i = 0; i > s >> e; for (int j..
-문제 -문제 설명 문제 이해가 조금 힘들수도 있는데, 풀어서 설명해보면 다음과 같은 문제다. 차원 N이 주어지면 N개의 bit로 구성된 (b1,b2,...,bn)와 같은 n-dimensional bit좌표를 생각해볼 수 있다. 이 때 어떤 좌표 하나를 점으로 생각하면, 그 점과 하나의 bit만이 차이나는 다른 점을 이웃하는 점으로 정의한다. 또한, 이 점에 대해 weight가 주어지는데 이것은 입력에서 0,1,2,3,4,5,6...2n-1의 순서대로 주어진다. 즉 처음 주어지는 weight에 해당하는 점은(0,0,0,..,0,0) 다음은 (0,0,...,0,1), 다음은 (0,0,0,..,1,0) 그 다음은 (0,0,0,..,1,1)에 해당하는 weight가 주어지게 된다. 이 때 어떤 점의 poten..
문제 함수 2개 만들어서 썼음 1. 주어진 행렬 90도 회전하는 함수 2. 주어진 크기 n에 대해 행렬비교해서 원소가 전부동일한지 체크하는 함수 #include using namespace std; void rotateclockwisematrix(char** N, int n) { char** temp; temp = new char* [n]; for (int i = 0; i < n; i++) temp[i] = new char[n]; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { temp[i][j] = N[i][j]; } } for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { N[j][n-1-..
문제 이거 bitset같은 S-length의 bit배열로 살아있는 군인 표시 하려고 하면 시간제한에 걸림(2중 for문 써야하기 때문) 따라서 공간을 낭비하더라도 다음과 같이 풀어야함 #include using namespace std; int lefts[100001]; int rights[100001];//because of restriction of stack size, define it to global. int main() { int S, B, L, R; while (cin >> S >> B) { if (S == 0 && B == 0) {//terminal case break; } for (int i = 1; i > L >> R; lefts[rights[R]] = lefts[L]; if (left..
- Total
- Today
- Yesterday
- 신경망
- CNN
- 순환 신경망
- rnn
- 신호 및 시스템
- 영상처리
- 사진구조
- 이미지
- gradient descent
- Logistic Regression
- 자연어 처리
- ML
- 영상구조
- 딥러닝
- 매트랩 함수
- 컴퓨터과학
- CS
- 머신러닝
- 인덱스 이미지
- Neural Network
- 머신 러닝
- 연속 신호
- RGB이미지
- 밑바닥부터 시작하는 딥러닝
- Andrew ng
- 이산 신호
- 컴퓨터 과학
- 이미지처리
- 매트랩
- NLP
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |