일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 에라토스테네스의 체
- 소수
- 맛집
- PS
- sw expert academy
- 완전탐색
- 브루트포스
- 알고리즘
- dynamic programming
- 백준
- 구현
- 잠실
- 시뮬레이션
- C++
- Algorithm
- 해커랭크
- 삼성 SDS 대학생 알고리즘 특강
- 동적 계획법
- BFS
- 다이나믹 프로그래밍
- koitp
- DP
- BOJ
- 백트래킹
- 삼성 기출
- dfs
- SWEA
- 스택
- 그리디
- hackerrank
- Today
- Total
목록분류 전체보기 (108)
펭로그
문제 링크 : https://boj.kr/11399 A B C D 의 순서로 필요한 시간이 있다고 가정해보자1 - A2 - A + B3 - A + B + C4 - A + B + C + D TOTAL - 4*A + 3*B + 2*C + 1*D 로 식이 나오게 된다. 가장 큰 수를 적게 곱하고 작은 수를 많이 곱하는게 이득이 된다. 결국 모든 숫자를 오름차순으로 정렬해줘서 작은 숫자 부터 N - i 번씩 곱해나가는 방식으로 풀면 쉽게 풀린다. 1234567891011121314151617181920212223242526// BOJ 11399 ATM#include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL);..
문제링크 : https://boj.kr/2309 무식하게 그냥 연산하면 풀리는 브루트 포스 알고리즘 문제이다.우선 모든 값을 sum에 더하고 2개의 원소를 뽑아서 뺀 후 100이 나오면 종료한다.생각할 수 있는 경우의 수가 적어서 단순하게 풀었다. 12345678910111213141516171819202122232425262728293031323334353637383940// BOJ 2309 일곱 난쟁이#include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); freopen("../input.txt", "r", stdin); vector dwarf; int input, ..
문제 링크 : https://boj.kr/7576 이 문제보다 기본 개념의 문제는 BOJ 2178 미로 탐색을 참고 컨셉을 잡는 데에 상당히 어려울 수 있지만 알고보면 기본적인 BFS 문제인 것 같다.map을 int형 컨테이너로 하나 만들어 입력 정보를 받고 이 정보를 visited로 사용하면 된다.현재 탐색하는 위치 정보는 별도의 구조체를 만들어 여기에 x, y 좌표와 BFS 탐색의 몇번째 단계에 해당하는지 level 변수를 추가하였다.입력 받을 때 익은 토마토를 발견하면 그 즉시 바로 큐에 담는다.큐에 담긴 순서대로 BFS를 수행하면 문제가 쉽게 풀리게 된다.BFS를 다 수행한 이후엔 다시 한번 전수조사를 해서 안익은 토마토를 체크했다. 12345678910111213141516171819202122..
문제링크 : https://boj.kr/10026 현재 위치를 기준으로 상, 하, 좌, 우의 4방향을 DFS로 탐색해서 같은 영역인지 여부를 확인한다.같은 영역이 아닐 경우 빠져나오며 단 한번이라도 같은 영역이 나오면 true를 반환한다.시간 복잡도에는 크게 영향이 없을 것 같으나 편의를 위해서 한번 탐색한 'R'은 'G'로 바꿔주도록 했다.dfs 탐색 도중 중간에서 반환하는 false의 경우는 최초 dfs 실행 후 담을 chk 변수가 아닌 이상 딱히 의미는 없다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263// BOJ 10026 적록색약#..
삼성SDS에서 실시하는 대학생 알고리즘 특강 프로그램에 선발되어 잠실 본사에서 5일간 알고리즘 교육을 받게 되었다.알고리즘 특강 선발 후기는 여기에서 확인할 수 있다. 8호선 잠실역에서 삼성 SDS로 가는 지름길(?)이다.저 뒷편에 왼쪽에 보이는 건물이 삼성 SDS 동관 (향군타워)이다. 잠실역 쪽에서 바라본 삼성 SDS 쌍둥이 타워 모습두 건물이 비슷해 보이는데 왼쪽은 삼성SDS 건물이고 오른쪽은 '향군타워'이다.동관인 향군타워는 삼성SDS를 비롯한 타 기업 및 편의점, 카페, 랄라블라 등이 함께 입주해있다. 정면에서 바라본 SDS 캠퍼스 서관의 모습 지하에는 델라코트라는 사내 식당이 있다.위 그림과 같이 당일 메뉴를 보여주는 디스플레이가 곳곳에 배치되어있다.지하1층, 2층에서 식사를 제공하며 테이크아..
잠실 롯데월드몰 5층에 위치한 카카오프렌즈샵에 다녀왔다. 입구에는 무지와 콘, 프로도와 네오가 반기고 있다. 호텔 드 라이언 신상!! 매장은 그리 넓은편이 아닌데도 사람들로 북적북적 라이언 졸귀탱 결제시 1000원 추가시 더스트백으로 가져갈 수 있다! 그래서 삼 바로 옆에는 프렌즈 카페가 있다. 메뉴판을 못찍었는데 생각보다 비싸진 않다. 아메리카노 3500원부터 5000원~6000원 메뉴까지 있다. 프렌즈 캐릭터가 그려진 마카롱, 컵케익, 조각케익 등을 팔고 있다. 컵홀더는 무지가 그려져있다. 벗기면 안에 라이언이!!!!!!!! 오늘의 지름 목록! 뿌-듯
문제링크 : https://boj.kr/11653 어떤 숫자의 소인수들은 소수들의 곱으로 표현할 수 있다.그러기 위해선 입력 숫자의 범위만큼 소수 리스트를 구해서 해당 소수들이 입력 숫자로 나누어 떨어지는지를 계산하고 이를 무한히 반복하여 더이상 나누어 떨어지지 않을 때까지 나누면 된다. 다만, 소수 리스트를 다 구할 필요는 없고 입력 숫자의 제곱근 범위까지만 구하면 된다.제곱근보다 큰 범위의 숫자를 2개 이상 서로 곱하면 입력 숫자를 초과하기 때문에 더 이상 구할 필요가 없다.소수 리스트에 속하지 않은 남은 숫자는 무조건 소수이다. (해당 숫자가 소수 리스트의 곱으로 표현되는 순간 소수가 아니다.) 소수 판별은 에라토스테네스의 체를 이용하여 구하면 더 빠르게 구할 수 있다. 123456789101112..
// BOJ 1753 최단경로#include #include #include #include using namespace std; struct edge {vector to;vector len;}; int main() {ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);freopen("input.txt", "r", stdin); vector edg(20001);priority_queue qq; int D[20001] = { -1, };int num, e, start;cin >> num >> e >> start;D[start] = 0;qq.push(pair(0, start)); int u, v, w;for (int i = 0; i < e; i++)..
잠실 방이동 먹자 골목에 있는 존맛탱 삼겹살집 미소공장을 다녀왔다. 메뉴는 평범한 다른 고기집과 크게 다르지 않아보인다.묵사발 먹어보고 싶었는데 다 떨어졌다해서 못먹었다. 아쉽아쉽 제주 통오겹살 2인분을 시켰다. 기본 상차림 점원이 직접 구워준다. 개꿀! 명이나물을 불판에 올려서 살짝 익히고 삼겹살을 소스에 찍어서 먹는다.특이하게 여기선 와사비를 기본으로 주는데 와사비를 살짝 올려서 먹으면 존맛탱이다. 명이나물 개꿀 두부김치는 기본 서비스로 나온다. 메뉴판에도 있는걸 보면 추가는 따로 해야하는듯 이건 삼겹살 1인분만 추가로 시킨건데 이것도 개꿀맛 껍데기도 추가로 시켰다. 기본적으로 삶아서 나오기 떄문에 살짝만 익히면 된다. 껍데기도 존맛탱 합격!
문제링크 : https://boj.kr/1260 가장 기본적인 DFS, BFS 문제이다.시간초과 때문에 애먹었었는데.. 백준 사이트 자체 채점 시스템은 제약조건이 너무 많은 것 같다.std::cin과 같은 것도 조심해야 하고 for each 구문도 조심해야 하는듯....편하려고 STL을 사용하면 문제 생기는 부분이 좀 있는 것 같다. 1234567891011void dfs(int num){ if(!visited[num]) sort(node[num].begin(), node[num].end()); visited[num] = true; for(int i : node[num]) { if (!visited[i]) { cout