일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Gold
- SWEA
- effective C++
- Silver
- algorithm
- Unity
- PrefixSum
- Bronze
- dirtyflag pattern
- Project
- BFS
- 3D RPG
- Modern C++
- programmers
- Zenject
- BOJ
- 8-Puzzle
- two pointer
- stack
- Euclidean
- knapsack Problem
- Flyweight Pattern
- binary search
- 프로세스 상태
- trie
- level1
- LEVEL2
- solid 원칙
- level3
- 프로그래머스
- Today
- Total
목록전체 글 (168)
Patrick's Devlog

1. 개요https://www.acmicpc.net/problem/75761-1. 설명철수의 토마토 농장에는 토마토를 보관하는 큰 창고를 가지고 있다. 토마토는 아래의 그림과 같이 격자 모양 상자 칸에 하나씩 넣어 창고에 보관한다.창고에 보관되는 토마토들 중에는 잘 익은 것도 있지만, 익지 않은 토마토들도 있을 수 있다. 보관 후 하루가 지나면 익은 토마토들의 인접한 곳에 있는 익지 않은 토마토들은 익은 토마토의 영향을 받아 익게된다. 하나의 토마토에 인접한 곳은 왼쪽, 오른쪽, 앞, 뒤 네 방향에 있는 토마토를 의미한다. 대각선에 있는 토마토들에게는 영향을 주지 못하고, 토마토 혼자 저절로 익는 경우는 없다. 철수는 창고에 보관된 토마토들이 며칠이 지나면 다 익게 되는지 그 최소 일수를 알고싶어 한다...

1. 개요https://acmicpc.net/problem/36871-1. 설명 성냥개비로 위와 같은 숫자를 만드려고한다. 성냥개비의 개수가 주어졌을 때, 성냥 개비를 모두 사용해 만들 수 있는 가장 작은 수와 큰 수를 찾는 프로그램을 작성한다.1-2. 제한 사항- 첫 줄에 테스트 케이스 개수가 주어지며, 최대 100개- 각 테스트 케이스는 한줄로 이루어져 있고, 성냥개비 개수 n이 주어짐- n 은 2 이상 100 이하의 자연수- 각 테스트 케이스에 대해 입력으로 주어진 성냥 개비를 모두 사용해서 만들 수 있는 가장 작은 수와 큰 수를 출력2. 구현2-1. 풀이큰 수는 자릿수가 많을수록 커지므로, 1과 7을 이용하여 만든다. 1은 2개, 7은 3개로 다른 숫자들은 4개 이상이므로 1과 7을 이용하면 된다..
1. 개요https://www.acmicpc.net/problem/61981-1. 설명도시에는 N개의 빌딩이 있으며, 빌딩 관리인들은 다른 빌딩의 옥상 정원을 벤치마킹 하고싶어 한다. i번째 빌딩의 키가 h_i이고 모든 빌딩은 일렬로 서있으며 오른쪽으로만 볼 수 있다. i번째 빌딩 관리인이 볼 수 있는 다른 빌딩의 옥상 정원은 i+1, i+2, ... , N이다. 자신이 위치한 빌딩보다 높거나 같은 빌딩이 있으면 다음에 있는 모든 옥상은 보지 못한다.각 관리인들의 벤치 마킹이 가능한 빌딩의 수의 합을 출력한다. 1-2. 제한 사항 - 첫 줄에 빌딩의 개수 N이 주어지며, N은 1 이상 80,000 이하 자연수 - 두 번째 줄부터 N + 1번째 줄까지 각 빌딩의 높이가 h_i 주어지며, h_i는 1 이상 ..

1. Monotonic Stack단조 스택(Monotic Stack)은 알고리즘 문제 해결에 사용되는 특수 구조이며, 각 element들을 오름, 내림 차순으로 유지하는 알고리즘 기법이다. 일반적으로 배열에서 다음으로 크거나 작은 element를 찾는 등의 문제를 효율적으로 해결하는데 사용된다. 기존의 스택과 달리 단조 스택의 조건은 스택의 내부 element가 들어오는 element에 따라 증가, 감소하는 배열이 되도록 순서를 구성해주어야 한다. 2. 유형단조 스택의 유형은 두가지로 분류될 수 있다. 오름차순 단조 스택 (Monotic Increasing Stack)스택에 추가되는 현재 들어오려는 element는 스택에 저장된 element들보다 크거나 같아야 한다. 새 element의 크기가 작으면..

1. 개요https://www.acmicpc.net/problem/21939 21939번: 문제 추천 시스템 Version 1tony9402는 최근 깃헙에 코딩테스트 대비 문제를 직접 뽑아서 "문제 번호, 난이도"로 정리해놨다. 깃헙을 이용하여 공부하시는 분들을 위해 새로운 기능을 추가해보려고 한다. 만들려고 하는 명령www.acmicpc.net1-1. 설명코딩 테스트 대비 문제를 직접 뽑아 "문제 번호, 난이도"로 정리했다. 이때 새로운 기능을 추가해보고자 한다. 명령어 recommend는 추천 문제 리스트에 문제가 하나 이상 있을때만 주어지며, solved는 추천 문제 리스트에 번호가 하나 이상 있을때 주어진다. 이를 토대로 추천 시스템을 만들어보자. 1-2. 제한 사항 - 첫 줄에 추천 문제 리스트..

1. 트라이탐색 트리의 일종이며, 동적 집합이나 연관 배열을 저장하는데 사용되는 트리 자료구조이다. 문자열을 저장하고 효율적으로 탐색하기 위한 자료구조로 생각하면 된다. 이진 탐색 트리와 달리 트리의 어떤 노드도 그 노드 자체와 연관된 키는 저장하지 않는다. 대신 노드가 트리에서 차지하는 위치가 연관된 키를 정의한다. 즉, 키의 값은 자료 구조 전체에 분산됨을 의미한다. 노드의 모든 자손은 노드에 연관된 문자열의 공통 접두사를 공유한다. 메모리에 최적화된 경우에는 기수 트리가 된다. 2. 장단점문자열 검색 시 빠른 검색 가능문자열 탐색 시 하나씩 전부 비교하는 것 보다 시간 복잡도 측면에서 효율적각 노드에서 자식들에 대한 포인터들을 배열로 모두 저장하고 있으므로 공간적인 측면(메모리)에서는 비효율적3..
1. 개요 https://www.acmicpc.net/problem/14425 14425번: 문자열 집합 첫째 줄에 문자열의 개수 N과 M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어진다. 다음 N개의 줄에는 집합 S에 포함되어 있는 문자열들이 주어진다. 다음 M개의 줄에는 검사해야 하는 문자열들이 주어 www.acmicpc.net 1-1. 설명 총 N개의 문자열로 이루어진 집합 S가 주어진다. 입력으로 주어지는 M개 문자열 중 집합 S에 포함되어 있는 것이 총 몇 개인지 구하는 프로그램을 작성한다. 1-2. 제한 사항 - 첫째 줄에 문자열 개수 N과 M이 주어지며, 각각 1 이상 10,000이하 자연수 - 다음 줄 N개에는 집합 S에 포함되어 있는 문자열 - 다음 M개 줄에는 검사..

1. 위상 정렬 방향 그래프의 정점(vertex)들의 방향(순서)에 거스르지 않도록 나열하는 것을 의미한다. 순서가 정해져있는 작업들이 존재한다고 가정해보자. 특정한 작업을 수행하고 싶을 때, 그 작업을 바로 수행하는 것이 아닌 해당 작업을 위한 선행 작업을 해야한다. 이때, 작업들의 순서를 결정하는 알고리즘이 위상 정렬 알고리즘이다. 2. 수행 과정 자기 자신이 가리키는 방향이 없는 정점(진입 차수가 0인 노드)을 찾음 찾은 정점을 출력 후, 출력한 정점과 해당 정점에서 출발하는 간선을 삭제 아직 그래프에서 정점이 남아있으면 처음으로 돌아가고 아니면 알고리즘 종료 수행 과정을 예시로 들어보자. 아래의 그래프가 존재한다고 가정하자. 참고로 이 그래프는 사이클이 없는 방향 그래프(DAG)여야 한다. 예시로..