일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 북리뷰
- 컴공과
- 스택
- 오퍼레이팅시스템
- 코딩
- 정석
- DP
- Operating System
- 자료구조
- 문제풀이
- OS
- 그래프
- Stack
- 브루트포스
- 백준
- 알고리즘
- 오에스
- 정석학술정보관
- 컴공
- vector
- 구현
- 컴퓨터공학과
- 개발
- c++
- 코테
- coding
- bfs
- Computer science
- cs
- 너비우선탐색
- Today
- Total
목록코딩 (178)
Little Jay
IIFE(Immediate Invoked Function Expression) 말 그대로 해석을 해보면 된다. 즉시 실행함수를 가리킨다. function foo() {}(); 그렇다면 위의 코드는 왜 실행이 안되는 것일까? 자바스크립트 Parser는 function foo() {} 이 부분은 함수의 선언부인 반면에 후자(괄호의 쌍)는 함수를 호출하려는 시도이지만 실제로 어떠한 이름도 지정이 된 것이 없기 때문에 Uncaught SyntaxError: Unexpected token ). 와 같은 에러 상황이 발생할 것이다. 이를 해결하기 위해서는 괄호를 추가하는 두 가지의 방법이 있다. (function foo(){ })() (function foo(){ }()) function으로 시작하는 선언문은 함수..
문제를 읽어보면 Minimum Spanning Tree를 구하는 것이라는 것을 파악할 수 있다. MST라고 판단할 수 있는 조건은 다음과 같다 Complete Graph 간선에 weight가 있어야함 문제해결기법 수업 중의 일화인데, DFS 문제를 발표하는 순서가 와서 처음 문제를 풀 때의 사고과정을 설명하던 중 처음 문제 접근을 Prim Algorithm으로 접근해서 풀다가 Prim Algorithm으로 접근했을 때의 output이 문제의 예시 output과 달라 MST를 구하지 않고 DFS로 풀었습니다 라고 발표를 했었다. 그러자 교수님께서 사고의 흐름을 칭찬하셨지만 문제의 조건으로 그래프를 먼저 그려봤다면 MST의 조건에 의해서 Prim은 생각조차 하지 않아도 된다고 하셔서 머쓱했던 적이 있다. 여..
http://www.kmooc.kr/invitation-banner-udemy | K-MOOC 02. 전 세계 트렌드를 가장 빠르게! Skill-up 강의 17,000개 제공 www.kmooc.kr KMOOC에서 Udemy 구독권을 중정해준다. Udemy는 여러개의 강의를 구매할 수 있는 일종의 인강 사이트이다. KMOOC에서 이번에 Udemy와 제휴를 맺어서 구독권을 무료로 증정해주고 있다. 구독권을 신청하면 일정시간 기다려야 한다. 아마 제휴를 맺을 때 허용되는 인원수가 있는 것 같다. 또한 성실하게 강의를 듣지 않으면 구독이 취소되기 때문에, 구독권을 받았다면 성실히 매일매일 강의를 듣는 것을 추천한다. 얼마전에 Udemy 세일할때 강의를 구매했는데 이 이벤트를 조금 더 빨리 알았더라면 좋았을껄 이..
중등교육에서 배운 nCm을 출력하는 문제이다. 하지만 여기서 n이 매우 크다면 그 수는 주체할 수 없을 만큼 커질 것이다. 문제의 예시에서의 100C6만 하더라도 1192052400이 출력된다. 따라서 이를 long long 형태가 아닌 string으로 문제를 해결해야 한다. 그리고 떠오를 수 있는 것은 Paskal의 삼각형이다. Paskal의 삼각형의 점화식은 nCm = n-1Cm-1 + n-1Cm 이다. 따라서 이를 재귀적으로 구해준다면 문제를 해결할 수 있다. #include #define endl '\n' #define ll long long using namespace std; string arr[101][101]; int n, m; string longadd(string a, string b)..
전형적인 DFS문제이다. 그런데 이제 Sorting을 곁들인..... 순서대로 DFS를 수행해주면 되지만 인접리스트로 구현한 그래프를 정렬을 하고 DFS를 수행해줘야 한다. 문제해결기법 13주차 A번 문제와 매우 유사한 문제였던 것 같다. #include #define endl '\n' #define pii pair using namespace std; int t; vector v[100001]; bool visited[100001]; int order[100001]; vector dfs_order; bool cmp(int& a, int& b) { return order[a] < order[b]; } void dfs(int start) { if (visited[start]) return; visited[..
Prefix Sum문제. 문제에서 정확히 뭘 출력하라고 하는지만 파악하면 쉽게 풀 수 있다. #include #define endl '\n' using namespace std; int dp[1025][1025]; int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n, m; int x1, y1, x2, y2; cin >> n >> m; for (int i = 1; i dp[i][j]; for (int i = 1; i y1 >> x2 >> y2; cout
DP가 하도 어려워서 요새 DP를 집중적으로 공부하고 있다. 그 와중에 조금 어이없는(?) 문제를 발견해서 풀이를 올리고자 한다. 위 문제는 어떤 실수 형태의 배열에서 연속되는 구간의 곱의 최대값을 출력하는 문제이다. 이를 간단하게 구성을 construct해보면 어떤 배열이 자기 자신으로 초기화 된 후에, 그 0번 인덱스의 것을 제외하고 1번 인덱스부터 자기 자신과 그 전에 있는 것의 곱의 대소 비교를 통해서 누적곱을 구할 수 있다. 이렇게 업데이트 시켜 주면서 최대값을 찾아주면 정답인데, C++를 하는 사람들은 당연히 setprecision 메서드를 사용했을 것이다. 문제는 이렇게 하면 정답이 아니다. 문제에서 요구한 것은 어떤 값들이 들어와도 소수 3번째 자리수까지 출력하는 것이다. 정수값을 setp..
substring과 map을 활용한 문제 map은 자료를 저장할때 red-black tree 구조로 구현이 되어있기 때문에 자동 정렬이 된다. 이는 int형 뿐만 아니라 string 형태에서도 char에 따라서 정렬을 한다. 'ab' > n; v..
플로이드-와샬 알고리즘으로도 풀 수 있는 문제이지만, 다익스트라가 문제를 보고 떠올랐기에 다익스트라로 풀었다 각 vertex에 대해서 다익스트라를 수행해주고, 수행 후의 distance와 m을 비교해 ans의 max값을 찾아내면 된다. #include #define endl '\n' #define pii pair #define MAX 987654321 using namespace std; int n, m, r; int a, b, l; int items[101]; vector v[101]; int dist[101]; void init() { for (int i = 0; i > n >> m >> r; for (int i = 1; i > items[i]; } for (int i = 0; i < r; i++) ..
트리를 활용한 문제이다. 사실 트리 문제가 나오면 DFS를 활용하는 것이 정배라고는 하지만 이 문제는 단순히 BFS를 통해서 문제를 풀 수 있었다. 1번 Node는 고려하지 않으므로, 1번 Node에서 출반하여 BFS 탐색을 수행하면 문제가 풀린다. 문제는 항상 root node가 1이 아니기 때문에 입력에서 양방향 인접리스트로 받았는데, 이제 visited한 것을 잘 처리해주면 된다. #include #define endl '\n' #define pii pair using namespace std; int n; vector tree[100001]; bool visited[100001]; int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0)..