목록대학교 (252)
SW
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/caXJ0R/btqChGrl5VX/vkee0vMsuDUuS8USDV7DC0/img.png)
0. 제목 백준 9935 문자열 폭발 BOJ 9935 문자열 폭발 C++ 9935 문자열 폭발 1. 문제 https://www.acmicpc.net/problem/9935 2. 풀이 입력 문자열의 길이가 1000000까지 될 수 있기 때문에 O(N)으로 탐색을 해야 시간 내에 통과할 수 있다. 처음부터 탐색하는 것을 반복하면 시간이 오래 걸리기 때문에 처음부터 비교해가면서 즉각 제거 하는 방식으로 풀어야 한다. 예를 들어보겠다. 문자열 abcde가 주어지고 폭발 문자열로 cd가 주어졌다고 하자. 문자열이 폭발 문자열의 마지막 문자인 d와 같을 때 역으로 비교해주어야 한다. result라는 배열은 폭발하지 않는 문자열을 담는 배열이다. 문자열에서 d가 나오는 순간 문자열의 d 전에 나오는 문자가 c인지 확..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/IEXCA/btqChFsl77i/vR6UuZ6oknSVz9k1b4sLek/img.png)
0. 제목 백준 1717 집합의 표현 BOJ 1717 집합의 표현 C++ 1717 집합의 표현 1. 문제 https://www.acmicpc.net/problem/1717 2. 풀이 Union-Find방식을 사용하는 문제이다. Find를 통해 root를 찾아주고 Union을 통해 합쳐준다. union은 merge로 구현하였다. 0과 1이 입력되는 케이스를 구분하여 적절히 find, union을 수행해주면 된다. 3. 코드 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 32 33 34 35 36 37 38 39 40 41 42 43 44 #include using namespace std; int par..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Vmjks/btqCioKEcJ8/aONTjbL2JCPUqiIxxmnnyK/img.png)
0. 제목 백준 1325 효율적인 해킹 BOJ 1325 효율적인 해킹 C++ 1325 효율적인 해킹 1. 문제 https://www.acmicpc.net/problem/1325 2. 풀이 한 번에 가장 많은 컴퓨터를 해킹할 수 있는 컴퓨터의 번호를 출력하는 것이 문제이다. dfs를 사용하여 연결되어 있는 컴퓨터의 수를 센다. 각 컴퓨터를 시작점으로 dfs를 시행하여 컴퓨터 수를 세고 그것을 depth배열에 담는다. depth배열의 원소 중 최댓값을 구한다. depth배열의 원소 값 중 최댓값과 같은 값을 가지고 있는 index들을 순서대로 출력한다. 3. 코드 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 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cJeej8/btqCgokmiud/2084Xh0aYYmN4nEI8OSBy0/img.png)
0. 제목 백준 2606 바이러스 BOJ 2606 바이러스 C++ 2606 바이러스 1. 문제 https://www.acmicpc.net/problem/2606 2. 풀이 한 컴퓨터가 웜 바이러스에 걸리면 그 컴퓨터와 네트워크 상에서 연결되어 있는 모든 컴퓨터는 웜 바이러스에 걸리게 된다. dfs를 활용하여 연결되어 있는 컴퓨터들의 개수를 구한다. dfs내부에서 감염 컴퓨터 수를 세는 cnt 변수를 사용한다. 1번 컴퓨터를 통해 웜 바이러스에 걸리게 되는 컴퓨터를 구하는 문제이기 때문에 dfs(1)을 수행하여 정답을 구할 수 있다. 3. 코드 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 32 33 3..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b8TAOv/btqChFLWkYw/ZBIDyfOJTd9JIxA1okRAj1/img.png)
0. Router 목표는 url이 달라질때마다 새로운 페이지를 띄워주는 것이다. 먼저 브라우저에서 개발을 할 수 있도록 다음과 같이 개발자 도구 - Sources - Filesystem 에 들어가서 폴더를 추가 후 작업한다.함수들을 다음과 같이 간단하게 작성하고 react-router-dom을 설치하고 import해준다. BroswerRouter로 App을 감싼다. 또한 위와 같이 코드를 작성하면 url 이 달라져도 정확한 정보를 얻기 힘들다. 하나의 예를 들어보면 "/topics"를 탐색하면 "/"와 "/topics" 둘 다 탐색되기 때문이다. 따라서 exact 를 사용해야 한다. 1. Switch Exact를 쓰지 않고도 Exact를 쓴것과 똑같은 효과를 나타낼 수 있다. Switch태그로 감싸주면된..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bi8NdG/btqCcVvGM4U/YoutotW4QGtcvmMtzlWn20/img.png)
0. From, Event Handling form태그를 이용하고 post방식을 사용한다. 결과화면은 다음과 같다. 위 작업을 마쳤을 때 추가하기를 눌러도 아무일이 일어나지 않는다. Node.js Express에서 파일 업로드 요청 처리와 DB에 데이터 삽입하는 코드를 추가로 작성하여야 한다.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Apr58/btqCbUREhze/j0wLwyltHxLF0xXh4E5mg1/img.png)
0. 제목 백준 1764 듣보잡 BOJ 1764 듣보잡 C++ 1764 듣보잡 1. 문제 https://www.acmicpc.net/problem/1764 2. 풀이 string자료형을 가지고 있는 vector를 이용한다. binarySearch를 이용하여 탐색시간을 줄인다. binarySearch로 듣도 못한 사람이 들어있는 vector v를 탐색해서 보도 못한 사람과 같은 이름이 있으면 듣도 보도 못한 사람을 넣는 vector result에 push_back으로 넣어준다. vector result를 sort를 사용해 오름차순 정렬을 한다. size()를 사용해 개수를 출력하고, 원소들을 출력해준다. 3. 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bsF6O4/btqCcBYr7PW/4dzPkzZvl5uqI3bYlleLwK/img.png)
0. 제목 백준 6581 HTML BOJ 6581 HTML C++ 6581 HTML 1. 문제 https://www.acmicpc.net/problem/6581 2. 풀이 문자열이 인 경우, 인 경우, 둘다 아닌 경우로 크게 나눌 수 있다. 인 경우, 개행문자를 사용하고 sum=0을 통해 개행 후 줄의 첫부분으로 좌표를 옮긴다. 인 경우, 줄의 첫부분일 경우와 아닐 경우를 구분해서 구현한다. 둘다 아닌 경우에는, 줄의 첫부분인 경우, 입력된 문자열이 들어와서 80자 이하인 경우, 80자 넘는 경우로 나눌 수 있다. sameline을 통해서 같은 줄 여부를 확인하고 sum을 통해서 좌표를 조정하며 구현한다. 3. 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/nLabr/btqCcjp7gWz/mTP5LaZX6O03UjUJG1AfKK/img.png)
0. 제목 백준 2002 추월 BOJ 2002 추월 C++ 2002 추월 1. 문제 https://www.acmicpc.net/problem/2002 2. 풀이 추월 여부를 확인해주는 함수를 작성하였다. 인자로 들어오는 vector는 추월한 차들이 원소로 들어있는 vector이다. 그 vector와 문자열 s를 비교하여 있으면 true를, 없으면 false를 반환해준다. main함수에서 들어오는 차들이 담겨있는 v1의 인덱스를 idx1로 놓고 나가는 차들이 담겨있는 v2의 인덱스를 idx2로 놓는다. 비교를 실시하여 같으면 인덱스를 하나씩 증가시켜준다. 다르다면 v1[idx1] 값이 추월vector에 속해있는지 검사한다. 속해있으면 idx1을 1증가해주고, 속해있지 않으면 v2[idx2]를 v3에 넣어주..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dxlAs5/btqCcUwmbTz/UnDbjPmxexA5TJAdylkGh1/img.png)
0. AWS(RDS) 고객에 대한 정보를 저장하기 위해서는 MySQL같은 DB 시스템이 필요하다. AWS의 RDS 서비스를 이용하면 MySQL과 같은 관계형 데이터베이스를 쉽고 빠르게 구축할 수 있다. Workbench를 통해 접속 하여 DB를 볼 수 있다. 1. DB테이블 구축 및 Express와 연동 database 관련 내용은 github에 올리면 안된다. .gitignore 처리를 해서 올라가지 않도록 처리한다. 아래의 형식에 맞게 내용을 채워넣는다. nodejs 와 mysql 을 연결하기 위해서 다음 명령으로 mysql 을 설치해준다. 그 후 다음과 같이 코드를 작성한다. 이제 연결이 완료되었기 때문에 workbench에서 데이터를 하나 추가하면 client쪽에서는 추가된 데이터까지 보여준다.