전체 글
-
백준 14500 테트로미노Algorithm/구현(Brute force, Back tracking, etc.) 2021. 11. 9. 12:51
- 브루트포스 문제인데 정말 무식한 문제이다.. 다시는 풀기 싫은 문제 - 시간복잡도는 O(NM)이다. - 모든 가능한 블럭의 경우의 수를 먼저 생각하고, 이들이 주어진 범위에 어떻게 들어갈 수 있는지를 생각하면 된다. 꼼꼼하게 오류 없이 푸는게 중요한 것 같다. /* 모든 경우의 수를 다 고려한다 */ #include using namespace std; int a[500][500]; int main() { int n, m; cin >> n >> m; for (int i = 0; i a[i][j]; } } int ans = 0; for (int i = 0; i= 0 && j + 2 < m) { // ㄴ 좌우 대칭해서 가로로 긴 것 int temp = a[i][j] + a[i][j + 1] + a[i][..
-
백준 14499 주사위 굴리기Algorithm/구현(Brute force, Back tracking, etc.) 2021. 11. 9. 12:14
- 삼성 SW 기출문제에서도 쉬운 편에 속하는 문제이다. 꼭 맞추고 들어가야 하는 문제라 생각. - 핵심적인 부분은, 주사위가 다음 칸으로 이동할 때 이동 가능한 범위인지를 체크하는 것과, 주사위의 각 면들의 값을 하나의 배열로 관리하고 동,서,남,북으로 이동시 각 면의 값이 어떻게 변하는 지를 잘 반영하면 된다. #include int square[7]; int map[20][20]; using namespace std; int dx[] = {0,0,-1,1}; int dy[] = {1,-1,0,0}; int main() { int N, M,x,y,k; cin >> N >> M >> x >> y >> k; for (int i = 0; i < N; i++) { for (int j = 0; j < M; j..
-
백준 13458 시험 감독Algorithm/구현(Brute force, Back tracking, etc.) 2021. 11. 5. 17:06
- 문제의 풀이법 자체는 쉽지만, 오답률이 높은 이유는 result에 int를 사용해서 일 것이다. - 시험장이 1,000,000이고 응시생도 1,000,000 이고, 감독가능한 인원이 1,2 와 같은 소수일 경우 필요한 감독관 수는 어마어마하게 많아진다. 따라서 result의 자료형은 8byte 정수 자료형인 long long을 사용한다. int가 양수 21억까지 표현 가능하니 21억 x 2^16 하면 경 단위까지 표현이 가능해서 충분하다. - 총 감독관이 감독할 수 있는만큼 각 시험장의 인원을 빼주고, 다시 순회하면서 부감독관들이 관찰 가능한 인원들을 활용하여 구해준다. 여기서, 이미 총 감독관 하나로 모든 인원이 감독 가능할 시, arr[i]값이 음수가 될 수 있으므로 예외처리를 해 준다. 시간복잡..
-
백준 3190 뱀Algorithm/구현(Brute force, Back tracking, etc.) 2021. 11. 4. 17:56
https://www.acmicpc.net/problem/3190 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net - 초기 설계를 잘 해야하는 시뮬레이션 문제이다. - 일단 방문 여부를 체크하기위한 d 배열을 둔다. d에는 가장 최근에 방문한 시간이 들어간다. - 만약 d가 -1이 아니면, 이전에 방문한 적이 있는 것이고 그와 동시에 해당 격자판에 현재 몸통이 존재하는지 를 체크해준다. 이는 now와 몸 길이 len으로 체크한다. - now에 1을 더해주고, x,y와 격자판 범위를 넘어가는 지를 체크한다. 다음으로,..
-
kafka란?Back-End/Kafka 2021. 10. 21. 20:54
공식 문서를 보면, kafka는 다음과 같이 정의되어 있다. Apache Kafka is an open-source distributed event streaming platform used by thousands of companies for high-performance data pipelines, streaming analytics, data integration, and mission-critical applications. kafka와 RabbitMQ의 성능 비교 https://www.confluent.io/blog/kafka-fastest-messaging-system/ - source application은 kafka에 data를 전송하고, target application은 kafka에서 ..
-
Forward Proxy vs Reverse ProxyEtc/WEB 2021. 10. 16. 13:30
Proxy란? - 서버와 클라이언트 사이의 중계기로써 대리로 통신을 수행 해 주는 것을 프록시라 한다. 프록시 서버는 클라이언트를 다른 네트워크 서비스에 간접적으로 접속시켜주는 컴퓨터 시스템이나 응용 프로그램을 의미한다. - 프록시는 캐싱기능도 수행할 수 있다. Forward Proxy란? - 클라이언트가 서버로 요청을 할 때, 직접 서버로 요청을 하는 것이 아닌 포워드 프록시 서버로 요청을 보내는 방식이다. - 한 예시로, 회사 내부 인트라넷 망에서, 외부 네트워크의 서버를 호출할 때 클라이언트는 먼저 프록시 서버를 요청하게 된다. - 서버로부터 클라이언트가 누구인지 감추는 역할을 해 준다. 즉, 서버에게 전달되는 IP는 포워드 프록시 서버의 IP이므로 클라이언트가 누구인지를 알 수 없다. Revers..
-
CDN(Content Delievery Network)란Etc/WEB 2021. 10. 16. 10:29
CDN - 지리,물리적으로 떨어져 있는 사용자에게 컨텐츠를 더 빠르게 제공할 수 있는 기술 - 느린 응답속도 / 다운로딩 타임 을 극복하기 위한 기술 - 사용 예) ex1) 온라인 게임은 OBT(Open Beta Test)나 정식 서비스 시작시점에 클라이언트(Client) 다운로드(Download) 수요가 급격하게 증가한다. 많은 분들이 이때문에 PC방에서 대기했던 경험이 있지 않을까 싶다. 이때 콘텐츠 병목 현상이 일어나거나, 심한 경우 서버다운도 발생하기 때문에 CDN이 필수적으로 사용된다. 이뿐만 아니라 대규모 업데이트(Update)를 위한 패치(Patch)가 있을 경우에도 콘텐츠 병목 현상이 발생하는 경우가 있어 CDN을 사용하게 된다. ex2) 예를들어 내 홈페이지가 한국에 있고 내가 사용하던 ..
-
jenkins란Back-End/Jenkins 2021. 10. 14. 14:31
- jenkins란, CI(Continuous integration) Tools이다. - 개발자가 어플리케이션의 코드를 작성을 한 이후 master branch에 merge를 한다면, 이 후 빌드, 테스트, 배포까지 자동으로 수행을 해 준다. - Jenkins를 사용하기 이전, 개발자들이 각 branch로 push를 한 이후 merge를 하려 할 때, 따로 merge를 승인해주고, build와 test 등을 해 주는 인력이 있었다. - 따라서, 해당 인력과 정해진 날에 merge를 해야하는 경우, 개발자들이 작업을 미리 끝낸 경우 merge를 하기로 한 날까지 노는 경우가 생기거나, 그와 반대로 매우 타이트하게 개발을 마쳐야 하는 경우가 생기고 만다. - jenkins등장 이후, 개발자들이 PR을 올리고..