본문 바로가기

전체

(156)
[백준/C++] 6603번: 로또 1) 이건 test case 갯수를 입력으로 받지 않고 0이 나오면 끝나게 해야했다. 그 부분을 잘 몰랐는데 while문으로 구현하면 된다. 2) 조합을 만드는 문제는 탐색으로 풀면 된다. 1차원배열 탐색을 하면되고 dfs로 풀었다. 이전에 풀었던 알파벳문제와 유사했다. 3)종료조건: 6글자를 다 채웠을때 출력하고 return한다. 4)이 포스팅의 구현을 보고 따라했고 이전에 알파벳풀었을 때는 visit을 표시했던 것과 다르게 엄청 코드가 간단하다.... 하지만 어려워ㅠㅠㅠㅠ #include using namespace std; int num; int lotto[14]; int ans[6]; void dfs(int start, int depth) { //종료조건 if (depth == 6) { for (..
오늘이라는 점 과거의 점들이 연결되어 지금의 내가 된거라지. 오늘의 점이 훗날 더 선명한 선을 이루길.
[백준/C++] 7562번: 나이트의 이동 이 문제는 보자마자 이동방향만 기존과 다르게 8방향을 설정하고 bfs를 돌리면 되겠다. 하고 감이 왔다. 하지만 너무 피곤해서 집중력이 안좋아 여러 오타가 발생했고.... 그래서 푸는데 오래 걸렸다. 1) index를 주의하자..... 변수이름이 여러개 나오니까 헷갈리지 말고 잘 써야한다. 나같은 경우 cx를 x, cy를 y라고 써놓고 계속 왜틀렸는지 모르고 있었다. 혹은 x와 y를 반대로 쓰지는 않았는지 복붙하다가 x만 두번 쓰지는 않았는지 주의해야함. 2) initialize를 해줘야 다음 test case에서 오류가 안난다. 3) map만 initialize했다가 또 오류가 났다. 이때가 젤 빡쳤는데 queue도 initialize해줘야한다. 전역변수로 설정했던 애를 bfs 블럭안으로 넣어서 bfs..
[백준/C++] 14503번: 로봇청소기 (DFS/구현) (**삼성 SW 기출문제) 조건들이 까다로워서 어려웠다... 내가 푼건 아니고 남이 푼거보면서 안보고 그대로 작성해봤다. 반시계방향으로 회전하면서 바라본다는 점을 생각해야하고 또 하나는 다 돌아본다음에 그 방향을 유지하고 후진해야한다는거.... 진짜 읽은 그대로 코딩해야된다. 너무어렵다.. 갈길이 멀구나 힘을내자. #include using namespace std; int n, m; int map[51][51]; int dx[] = { -1, 0, 1, 0 }; int dy[] = { 0, 1, 0, -1 }; int ans; void dfs(int cx, int cy, int cd) { if (map[cx][cy] == 0) { map[cx][cy] = 2; ans++; } for (int i = 0..
[백준/C++] 백준 10026번: 적록색약 기존에 풀었던 아파트단지에 숫자매기는거보다 더 쉬웠다. 흠... 어제 푼게 너무 어려워서 그런가... 주의점은 적록색약일 때, 그냥 같은 문자로 바꿔버리고 dfs를 진행하면 된다. 그리고 visit배열을 다시 초기화 해줘야한다. #include using namespace std; int N; string map[101]; int visit[101][101]; int dx[] = { 1,-1,0,0 }; int dy[] = { 0,0,1,-1 }; void dfs(int x, int y) { for (int i = 0; i = N || ny = N) contin..
[백준/C++] 백준 2667번: 단지번호붙이기 지금까지 엄청 쉬운 것만 풀다가 좀 막혔다... 1) 왠만하면 input을 받을 때 string배열로 받자. (문자가 붙어서 나오는 map) 2) 이렇게 여러개를 그룹지어야 하는 경우 dfs를 여러번 돌려야한다. 3) vector로 단지마다의 가구수를 count해서 넣으면 vector의 size가 곧 단지 수.. String으로 받을 때, #include #include #include using namespace std; //input int N; string map[26]; //output int cnt = 0; vector people; int dx[] = { 1, -1, 0, 0 }; int dy[] = { 0, 0, 1, -1 }; void dfs(int x, int y) { for (int i..
[PyTorch] 시계열 데이터를 위한 RNN/LSTM/GRU 사용법과 팁 순차적으로 들어오는 정보들의 맥락(context)을 잘 기억하는 딥러닝의 구조로 RNN계열이 있다. 오늘은 RNN이나 LSTM을 처음 사용하는 초심자를 위한 간단한 pyTorch에서의 RNN/LSTM/GRU layer 사용법을 정리한다. RNN 내부 구조보다 input, output의 차원에 초점을 둔 설명이 될 것이다. 그럼 시작! RNN/LSTM/GRU 먼저 RNN/LSTM/GRU 각각의 cell은 모두 동일한 파라미터를 가지고 있기 때문에 LSTM을 기준으로 PyTorch에서 어떻게 사용하는지 그리고 파라미터는 무엇이 있는 지 하나씩 알아보자. import torch.nn as nn lstm = nn.LSTM(input_size, hidden_size, num_layers, bias=True, ba..
[백준/C++] 2606번: 바이러스 (플로이드 와샬/DFS/BFS) 플로이드 와샬 알고리즘을 공부했다. 이 방법은 모든 정점에서 모든 정점으로의 최단경로를 구하는 방법이라고 한다. 이 문제의 경우 연결되었냐 or 연결되지 않았느냐 판단하는 문제여서 경로를 구할 필요도 없고 모든 정점에 대해 판단하지 않고, 첫번째 컴퓨터를 기준으로 판단하기 때문에 굳이 플로이드 와샬을 쓸 필요가 없지만 쉬워서 이걸로 풀었다. 오늘은 dfs, bfs로도 풀어봐야지. 3중 for문을 다 돌았을 때, 연결되어있는 노드라면 inf 가중치를 갖지 않을 것이다 라고 하고 풀었다. 플로이드 와샬 풀이 #include #define inf 99999 using namespace std; int map[101][101]; int computer; int main() { int N; pair pair; c..