-
BOJ 13023 : ABCDE백준 문제풀이/GRAPH 2020. 5. 15. 17:59
문제 문제 풀어보기 풀이 문제를 이해하는데 좀 오래 걸렸네요... 이 문제는 A -> B -> C -> D 처럼 친구의 친구의 꼬리를 4번 무는 경우를 찾는 겁니다. 그래서 DFS 를 사용해서 깊이가 4가 되는 경우를 찾으면 됩니다. 코드 #include #include #define max 2000 using namespace std; bool check[max + 1]; vector v[max + 1]; // max+1 개의 벡터 생성 int n, m; void dfs(int st, int index) { check[st] = true; // 깊이가 4인경우 종료 if (index == 4) { cout n >> m; for (int i = 0; i >..
-
BOJ 11727 : 2xn 타일링 2백준 문제풀이/Dynamic Programming 2020. 5. 15. 17:51
문제 문제 풀어보기 풀이 이거 하나만 확인하세요 !! 경우의 수를 계산하는 모든 과정에서 모듈러 연산을 하셨나요 ? ㅎㅎ 코드 #include #include using namespace std; int d[1001][3]; #define mod 10007 int main() { ios::sync_with_stdio(false); cin.tie(NULL); int n; cin >> n; d[1][1] = 1; d[2][0] = d[2][1] = d[2][2] = 1; for (int i = 3; i
-
BOJ 17140 : 이차원 배열과 연산백준 문제풀이/etc 2020. 5. 10. 22:17
문제 문제 풀어보기 17140번: 이차원 배열과 연산 첫째 줄에 r, c, k가 주어진다. (1 ≤ r, c, k ≤ 100) 둘째 줄부터 3개의 줄에 배열 A에 들어있는 수가 주어진다. 배열 A에 들어있는 수는 100보다 작거나 같은 자연수이다. www.acmicpc.net 풀이 저는 R 연산을 구현하고 C 연산에 복붙하고 행과 열만 바꿔서 풀었습니다. 처음엔 계산된 값을 어떻게 삽입을 할지 고민을 많이 했는데, 그냥 하드코딩으로 집어 넣어줘도 시간은 초과되지 않았습니다. 코드 #include #include #include #include #include #include using namespace std; int n = 3; int m = 3; vector arr(105, vect..
-
BOJ 17142 : 연구소 3백준 문제풀이/GRAPH 2020. 5. 10. 21:39
문제 문제 풀어보기 17142번: 연구소 3 인체에 치명적인 바이러스를 연구하던 연구소에 승원이가 침입했고, 바이러스를 유출하려고 한다. 바이러스는 활성 상태와 비활성 상태가 있다. 가장 처음에 모든 바이러스는 비활성 상태이고 www.acmicpc.net 풀이 간단하게 설명하면 모든 경우에 대해서 BFS를 전부 돌려봐야 하는 문제입니다. 어떤 바이러스를 활성화할 것인지를 고르는 방법이 포인트인데, 조합을 써도 되고 방법은 여러가지 입니다. 저는 비트 마스크를 사용해서 풀었으니 참고하시면 좋을 것 같습니다. 코드 #include #include #include #include #include #include using namespace std; int dx[] = { 1,-1,0,0 }; int dy[] ..
-
[C++] pair, tuple 보다 편한게 구조체(Struct) ?프로그래밍/C++ 2020. 5. 8. 23:13
요약 : pair 와 tuple 보다 구조체(Struct) 를 사용하면 보다 효율적이고 직관적인 알고리즘 코딩이 가능합니다. 우선 pair 와 tuple 의 장단점을 조금 생각해보자면 pair는 원소의 접근이 편하지만 공간이 두 개로 한정적입니다. tuple은 공간이 무한하지만 접근이 불편합니다. 이러한 이유에서 저는 상황에 따라서 사용했습니다. 그러다가 최근에 구조체(Struct)를 사용하게 됬습니다. 구조체는 이름만으로도 무겁고 귀찮게 느껴집니다. 예를 들어 봅시다. 왼쪽, 오른쪽, 위, 아래의 4가지 정보를 한 세트로 하는 알고리즘을 구현한다고 생각해봅시다. 아래의 두 가지 구현에서 느끼셔야 할 부분은 세 가지 입니다. 1. 구조체 구현이 얼마나 간단한가. 2. 원소 추출이 얼마나 간편한가. 3. ..
-
[C++] Map 컨테이너 기본 사용법 및 예제프로그래밍/C++ 2020. 5. 8. 22:34
사용 라이브러리 · 기본함수 선언문 · map 변수명 추가 및 삭제 · insert( make_pair(key, value) ) : pair 의 형태로 원소를 저장합니다. · erase(key) : 해당 key 값에 해당하는 원소를 삭제합니다. · clear() : 모든 원소를 삭제합니다. 조회 · find(key) : 해당 key 값의 Iterator 값을 반환합니다. · count(key) : 해당 key 값의 원소의 갯수를 반환합니다. 기타 함수 · empty() : 비어있는 경우 1을 , 그렇지 않은 경우 0을 반환 · size() : 원소의 수를 반환 예제 코드 #include #include #include using namespace std; int main() { //////////////..
-
BOJ 17143 : 낚시왕백준 문제풀이/etc 2020. 5. 4. 18:28
문제 문제 풀어보기 풀이 최근에 출제되는 삼성 기출문제는 거의 80% 가 시뮬레이션 문제입니다. 시뮬레이션은 순차적으로 진행되는 프로그램을 그대~로 구현하는 문제입니다. 이러한 문제들은 복잡한 알고리즘을 요구하지 않기 때문에 빠른 이해력과 정확한 설계만 한다면 대부분 푸실 수 있는 문제들입니다. 하지만 시뮬레이션에선 항상 시간 초과의 늪에 빠지게 됩니다. 이문제도 그랬는데요. 그러한 시간초과를 해결하는 방법이 바로 모듈러 연산입니다. 예를 들어 봅시다. 철이는 1초마다 숫자를 하나씩 증가하면서 말하고 있는데, 3의 배수일때마다 박수를 친다고 합니다. 그럼 1억초 이후에 철이는 몇 번 박수를 칠까요? 라는 문제를 풀때 저희는 1초 일때 박수를 치는지 안치는지 2초 일때 박수를 치는지 안치는지 3초 일때 박..
-
[Spring] MVC 모델프로그래밍/Spring 2020. 3. 31. 13:12
MVC 모델 1 구동방식 브라우저에서 WAS 로 요청(Request)을 보낸다. WAS 는 데이터가 필요한 경우 DB에서 가져와 정보를 가공한다. 가공된 정보를 Model 객체의 형태로 브라우저에게 응답(Response) 해준다. 구성 Client : 서버에 요청을 보내는 사용자. ex) chrome, Edge 등의 웹 브라우저 WAS(Web Application Server) : JSP, Service, DAO 등의 내용이 한파일에 담겨있다. DB 장점 WAS 에 JSP, HTML 태그, Service, 메소드 등의 작업을 한 번에 하기 때문에 빠르고 비교적 편하게 작업이 가능하다. 디 단점 Back-end 와 Front-end 작업을 한 파일에서 진행하기 때문에 유지보수가 어렵고 헷갈린다. 디자이너와..