백준

    [백준 1863] 스카이라인 쉬운거 (C++)

    1863번: 스카이라인 쉬운거 첫째 줄에 n이 주어진다. (1≤n≤50,000) 다음 n개의 줄에는 왼쪽부터 스카이라인을 보아 갈 때 스카이라인의 고도가 바뀌는 지점의 좌표 x와 y가 주어진다. (1≤x≤1,000,000. 0≤y≤500,000) 첫 번째 지점 www.acmicpc.net 스택 높이가 바뀌는 y좌표만 저장하면 된다. 높이가 점점 증가하다가 갑자기 감소했을 때, while문을 돌면서 stack의 top에 위치한 높이가 현재 높이와 같거나 작아질 때까지 pop을 수행한다. 마지막에 stack에 남아있는 건물의 수 만큼 답에 더해준다. 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..

    [백준 1103] 게임 (C++)

    1103번: 게임 줄에 보드의 세로 크기 N과 가로 크기 M이 주어진다. 이 값은 모두 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 보드의 상태가 주어진다. 쓰여 있는 숫자는 1부터 9까지의 자연수 또는 www.acmicpc.net 백트래킹과 DP가 합쳐진 문제? 중요 - 방문처리 방문한 곳에 도달했다면 사이클을 이루므로 무한번 이동가능. -1 출력 후 exit()으로 프로그램 종료 나머지는 현재 위치좌표를 가지는 dp배열을 통해 최대 이동 횟수를 재귀적으로 메모이제이션 한다. 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 ..

    백준 목표달성 그런데

    백준 목표달성 그런데

    갑자기 플레V가 되었다ㅋㅋ class5를 달성해서 갑자기 50포인트가 올라서 그렇다.. 완전 물 플레; 아직 많이 부족한데 3주전에 비해서 29문제를 더 풀었다 주로 골드 2 ~ 5문제 위주로 풀고있는데 슬슬 확 어려운 문제도 도전해봐야겠다 못 풀면 못 푸는대로 배울게 있겠지ㅋㅋㅋㅋ 시스템 소프트웨어랑 운영체제가 갈수록 어려워진다 운체는 이론보다 과제가 너무 숨막히고 시소는 2-1 과목인거 치고 너무 어려운데.. 누가 좀 도와줬으면.. 알고리즘 포스팅은 나름 꾸준히 올리고 있지만 프로젝트에 쓰는 django랑 학교에서 배우는 OS, Systemsoftware같은 지식들은 포스팅 하기가 막막하다 시험 공부하면서 좀 집중적으로 올려야겠다ㅠ 미래의 나는 이걸 보고 무슨 생각을 할까

    [백준 14501] 퇴사 C++

    14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net dp와 브루트포스 방식을 모두 적용할 수 있는 좋은 문제이다! solve1은 브루트 포스와 dp를 적용해서 O(n^2)에 풀 수 있는 방법이다 solve2는 solve1과 논리는 같지만 top-down방식으로 재귀함수를 이용한 방법이다 solve3는 동적계획법을 최대한 활용해서 Pi, Ti를 뒤에서부터 탐색하는 방법을 사용해 O(N)만에 해결하는 방법이다 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 45 46 47 48 49 5..

    [백준 2798] 블랙잭 C++

    [백준 2798] 블랙잭 C++

    N이 최대 100 이므로 3장을 뽑는 모든 경우의 수를 탐색하는 O(N^3) 알고리즘을 수행할 수 있다 for 문을 돌면서 sum에 현재 선택한 카드 3장의 합을 저장하고, sum이 M을 넘지않지만 현재 결과보다 크다면 현재 결과를 갱신한다 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 #include using namespace std; int main(){ int N, M, num[101], sum = 0, result = 0; cin >> N >> M; for(int i = 0; i > num[i]; } for(int i = 0; i