( cf . PC 로 보는게 훨씬 편합니다 )[ 2022.1.28 ~ 4.1 / 2023.11 ~ 2024.2 / ][예정 : 학교 수업 / 취업 전 ] [도움이 될만한 글]공부할때 어디까지 참고해야 하는가?https://blog.encrypted.gg/1062 [코딩테스트 대비 특강]https://infossm.github.io/blog/2019/03/07/%EC%BD%94%EB%94%A9%ED%85%8C%EC%8A%A4%ED%8A%B8-%EB%8C%80%EB%B9%84-%ED%8A%B9%EA%B0%95/BFS,DFS,백트래킹 위주로, [전체 문제]https://github.com/encrypted-def/basic-algo-lecture/blob/master/workbook.md [틀렸을 때 ..
https://www.acmicpc.net/problem/30625 30625번: 댄스타임 첫째 줄에 호영이가 사인 앨범을 받을 수 있는 경우의 수를 소수 $1\,000\,000\,007$로 나눈 나머지를 출력하라. www.acmicpc.net #include using namespace std; #define x first #define y second long long n,m; long long deno = 1'000'000'007; // 분모 vector v; long long dp[100'005]; int main(){ ios::sync_with_stdio(0); cin.tie(0); cin >> n >> m; for(long long i = 0 ; i < n ; i++ ){ long long a..
https://www.acmicpc.net/problem/15685 15685번: 드래곤 커브 첫째 줄에 드래곤 커브의 개수 N(1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 드래곤 커브의 정보가 주어진다. 드래곤 커브의 정보는 네 정수 x, y, d, g로 이루어져 있다. x와 y는 드래곤 커 www.acmicpc.net 처음에 아예 발상 자체를 틀리게 해가지고 문제를 풀지 못했다. 문제를 처음 읽고 나서 든 큰 틀은 이랬다. 1. 시계방향으로 회전시킨다 2. 끝 점을 기준으로 이어 붙인다. (완료후) 3. boared 에서 정사각형 갯수를 센다. 이때 총합 board 와 한 사이클 계산 board 를 따로 만든 뒤 회전이 끝 난 후 최종 board 에 옮겨 적는다. 이걸 조금더 구체화시..
삼성 s/w 기출문제 위 문제를 조합으로 내 코드보다 좀 더 깔끔한 코드 없을까 해서 구글링 해봤는데 , 딱히 없는 것 같아서 올려본다. 1. 조합을 통해서 3개의 board[][]=0 ( 빈칸 ) 의 조합 구하기 2. 3개의 벽을 세운 배열 생성 하기 3. BFS 를 통해서 바이러스 영역 구하기 를 순서대로 구현했다. cf). board[i/m][i%m] 는 일렬로 구성된 조합(next_permutation 을 사용하기 위해서는 일차원의 배열이여야 한다.) 을 사용하면서 board 배열은 2차원이기 때문에 일차원배열 -> 이차원 배열 로 바꾸는 식이다. 이해가 가지 않으면 직접 4by6 배열을 가지고 예시를 들어보면서 이해하면 빠르다 #include using namespace std; #define ..
#include using namespace std; #define x first #define y second int dx[4] = { 1,-1,0,0 }; int dy[4] = { 0,0,1,-1 }; int n; int vis1[1002][1002]; // 불 int vis2[1002][1002]; // 상근 string s[1001]; int main(void) { ios::sync_with_stdio(0); cin.tie(0); cin >> n; while (n--) { int n, m; cin >> m >> n; // n x 축 // m y 축 bool escape = false; for (int i = 0; i < n; i++) { fill(vis1[i], vis1[i] + m, -1); f..
#include using namespace std; int a[1000001] = {}; bool sum[2000001]; int n, x; int main(void) { ios::sync_with_stdio(0); cin.tie(0); int cnt = 0; cin >> n; for (int i = 0; i > a[i]; } cin >> x; for (int i = 0; i 0) cnt++; sum[a[i]] = true; } /* * 위 아래 차이가 뭐지?.... for (int i = 0; i 0 && sum[x - a[i]])..