일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Netflix
- review
- BOJ
- 리뷰
- 나는솔로
- 넷플릭스
- health
- usaco
- 카카오
- 2020
- Algorithm
- 추천
- Recursive
- 백준
- Movie
- benefits
- 해설
- 코딩 테스트
- array
- 영화
- silver
- 수능
- 영어
- BFS
- 완전탐색
- coding
- Greedy
- parametric search
- 알고리즘
- kakao
- Today
- Total
목록전체 글 (99)
Young
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/3PkTh/btqAs2xcRpf/KlVzPnAsoBRPrfAMVeBdqK/img.png)
어려운 코딩 테스트에서는 그래프 문제가 하나씩 출제 됩니다. 코딩 테스트 그래프 관련 문제라고 한다면, 아래 수준에서 나옵니다. 1. 최단거리 (플로이드 알고리즘 / 다익스트라 알고리즘) 2. 트리 3. 싸이클 찾기 4. 최소 스패닝 트리 이러한 문제를 푸는데 가장 먼저 해야할 것은 '노드와 노드를 엣지로 잇는 것' 입니다. 이것을 구현하는 방법에는 크게 두 가지가 존재합니다. 1. adjacent matrix 2. adjacent list 이 두 가지에 대해서 살펴볼 예정입니다. 그 전에 일반적으로 그래프의 두 가지 종류에 대해서 말씀드리겠습니다. 1. directed graph (방향 그래프) : 문제에서 주어진 그림에 화살표가 있거나, 문제 설명에 'a에서 b로만 갈 수 있다'라는 말이 있을 경우 ..
https://programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 | 프로그래머스 데이터 처리 전문가가 되고 싶은 어피치는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자열에서 같은 값이 연속해서 나타나는 것을 그 문자의 개수와 반복되는 값으로 표현하여 더 짧은 문자열로 줄여서 표현하는 알고리즘을 공부하고 있습니다. 간단한 예로 aabbaccc의 경우 2a2ba3c(문자가 반복되지 않아 한번만 나타난 경우 1은 생략함)와 같이 표현할 수 programmers.co.kr 카카오 코딩테스트는 어렵기로 유명합니다. 당분간 카카오 코딩테스트 풀이를..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/24BGI/btqAsTe1nYK/VGaA5jyXbnQ5OcNttmHlq0/img.png)
internet 상에서 사용하는 communication protocol이 여러 개 있는데, 이 중 가장 많이 사용하는 것은 TCP/IP 입니다. 아래 그림을 보면, 데이터가 전송될 때 전송 계층의 'TCP'와 네트워크 계층의 'IP'를 이용합니다. 각 계층에는 많은 통신 규약이 있는데, 이 두 가지의 조합을 이용합니다. 그래서 두 개의 다른 프로토콜을 붙여서 하나의 프로토콜처럼 TCP/IP 라고 말합니다. 계층을 내려가면서, 각 계층에서 header를 붙여 전송하게 됩니다. IP header, TCP header 등을 붙입니다. receiver 쪽에서 이 header를 반대로 하나씩 떼어가면서 마지막에 데이터를 읽게 됩니다. 1. 데이터를 보내는 전반적인 과정을 한 번 보자 sender가 1GB의 데이..
'재귀함수를 이용한 완전탐색의 기본에 대해서 (1)' 에서는 간단하게 숫자 조합을 고르는 방법에 대해서 알아 보았습니다. 사실 이것만 알면 그보다 좀 더 어려운 문제들 푸는 모든 준비는 끝났지만, 응용하는 방법을 알아보기로 합시다. https://www.acmicpc.net/problem/13302 13302번: 리조트 수영이는 여름방학을 맞이하여 많은 놀이 시설이 있는 KOI 리조트에 놀러가려고 한다. 리조트의 하루 이용권의 가격은 만원이다. 하지만 리조트의 규모는 상상을 초월하여 모든 시설을 충분히 즐기기 위해서는 하루로는 터무니없이 부족하다. 그래서 많은 이용객들은 3일 이상 연속으로 이용하기도 한다. KOI 리조트에서는 3일 연속 이용권을 할인된 가격 이만오천원에, 연속 5일권은 삼만칠천원에 판매..
https://www.acmicpc.net/problem/4991 4991번: 로봇 청소기 문제 오늘은 직사각형 모양의 방을 로봇 청소기를 이용해 청소하려고 한다. 이 로봇 청소기는 유저가 직접 경로를 설정할 수 있다. 방은 크기가 1×1인 정사각형 칸으로 나누어져 있으며, 로봇 청소기의 크기도 1×1이다. 칸은 깨끗한 칸과 더러운 칸으로 나누어져 있으며, 로봇 청소기는 더러운 칸을 방문해서 깨끗한 칸으로 바꿀 수 있다. 일부 칸에는 가구가 놓여져 있고, 가구의 크기도 1×1이다. 로봇 청소기는 가구가 놓여진 칸으로 이동할 수 없다. 로봇은 www.acmicpc.net 오늘 또한 완전탐색입니다. 지도가 주어졌을 때 최단거리는 보통 BFS로 구하게 됩니다. 하지만, 최대 10개가 주어지는 더러운 칸을 어떤..
https://www.acmicpc.net/problem/15811 15811번: 복면산?! 복면산이란 수학 퍼즐의 일종으로, 어떤 계산식의 각 숫자들을 특정 문자로 바꾸면 각 문자가 어떤 숫자인지 맞추는 퍼즐이다. 대표적으로 SEND+MORE=MONEY가 있다. SEND + MORE ------ MONEY S=9, E=5, N=6, D=7, M=1, O=0, R=8, Y=2로 바꾸면 식이 성립한다. 9567 + 1085 ------ 10652 복면산 문제가 주어질 때, 답이 존재하는지 여부를 출력하시오. 단, 같은 문자는 같은 숫자에 대응되어야 www.acmicpc.net 오늘도 완전탐색입니다. 세 개의 문자열이 주어지면, 존재하는 각 알파벳에 0부터 9까지의 숫자를 분배해주고, 덧셈을 만족하는지 보면..
https://www.acmicpc.net/problem/17252 17252번: 삼삼한 수 첫째 줄에 2,147,483,647보다 작거나 같은 음이 아닌 정수 N이 입력된다. www.acmicpc.net 이 문제는 풀 수 있는 방법이 크게 두 가지가 있습니다. 1. 수학적 풀이 2. 완전탐색 수학적 풀이는 다음에 소개하기로 하고, 이번에는 완전탐색으로 푸는 방법을 소개하겠습니다. 아무래도 코딩 테스트에서 완전탐색이 자주 나오기 때문이죠. 약 3^21 정도면 2,147,483,647 을 넘어서게 됩니다. 그러므로 3^0부터 3^21 까지 1번 또는 0번 사용해서 만들 수 있는가를 알아내기 위한 완전탐색을 수행하면 시간복잡도는 O(2^N) 으로 최대 2^21 = 약1000000 으로 시간안에 충분히 가능합..
https://www.acmicpc.net/problem/17255 17255번: N으로 만들기 음이 아닌 정수 N이 주어진다. (0 ≤ N ≤ 10,000,000) www.acmicpc.net 최대 8자리 숫자가 들어옵니다. 들어오는 숫자가 작아서 완전탐색으로 충분히 가능합니다. 시간복잡도는 O(N * 2^N) 입니다. 완전탐색은 BFS, DFS 아무거나 사용해도 됩니다. 이 코드에서는 DFS로 풀었습니다. 경로가 같은 것은 같은 경우의 수로 가정하는데, 이를 걸러내는 방법이 여러가지 있지만 각 경로를 string으로 이어 붙여서 마지막에 set 자료구조를 사용해서 걸러내면 됩니다. 예를 들어서 123이 들어온다면, 1 -> 12 -> 123 경로를 이어붙이면 112123 이 되고, 이를 set에 in..