본문 바로가기

code

(114)
현대자동차 [전략지원/IT]디지털 신기술 선행 검토 스터디 모집 2차면접 스터디원 모집합니다. 1. 기출문제를 수집하고 2. 기출 및 자소서 기반 예상문제 작성하고 3. 모의면접하실 분 모집합니다.(최대한 현직자 모실 예정입니다.) 들어오셔서 스터디 가능 장소와 날짜 시간 알려주시면 감사하겠습니다. https://open.kakao.com/o/gD2grXSb
서강대 알고리즘 스터디 인프런 리액트 동빈나 유니언 파인드 종만북 히든 마르코프
백준 15686 치킨 배달 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸, 왼쪽에서부터 c번째 칸을 의미한다. r과 c는 1부터 시작한다. 이 도시에 사는 사람들은 치킨을 매우 좋아한다. 따라서, 사람들은 "치킨 거리"라는 말을 주로 사용한다. 치킨 거리는 집과 가장 가까운 치킨집 사이의 거리이다. 즉, 치킨 거리는 www.acmicpc.net 설계 선택된 치킨집들로부터의 최소비용 브루트포스로 M개의 치킨집들을 선택하되, 매번 치킨집을 선택할 때마다 해당 좌표에서 BFS를 실행한다. BFS에서 방문 여부를 체크하는 대신 지도 크기만큼 비용 배..
백준 15685 드래곤커브 15685번: 드래곤 커브 첫째 줄에 드래곤 커브의 개수 N(1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 드래곤 커브의 정보가 주어진다. 드래곤 커브의 정보는 네 정수 x, y, d, g로 이루어져 있다. x와 y는 드래곤 커브의 시작 점, d는 시작 방향, g는 세대이다. (0 ≤ x, y ≤ 100, 0 ≤ d ≤ 3, 0 ≤ g ≤ 10) 입력으로 주어지는 드래곤 커브는 격자 밖으로 벗어나지 않는다. 드래곤 커브는 서로 겹칠 수 있다. 방향은 0, 1, 2, www.acmicpc.net 설계 드래곤커브 그리기 현재 끝 점(문제 본문 참조)으로부터 드래곤 커브 연장시켜 다음 끝 점까지 이어간다. 드래곤 커브를 연장시키는 방법은 이때까지 지나온 방향을 역순으로 순회하되, 각 방향을 반시..
백준 16946 벽 부수고 이동하기 4 16946번: 벽 부수고 이동하기 4 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 한 칸에서 다른 칸으로 이동하려면, 두 칸이 인접해야 한다. 두 칸이 변을 공유할 때, 인접하다고 한다. 각각의 벽에 대해서 다음을 구해보려고 한다. 벽을 부수고 이동할 수 있는 곳으로 변경한다. 그 위치에서 이동할 수 있는 칸의 개수를 세어본다. www.acmicpc.net 맵의 크기가 10^6이고, 최악 매번 10^6만큼 탐색을 수행하면 10^12이고, 10^9를 초과한다. 벽을 시작점으로 빈칸을 탐색하면 중복 연산이 발생한다. 이를 방지하기 위해서는 빈칸을 시작점으로 빈칸을 탐색하여 빈칸 그룹들의 크기를 산출한다. -> 10^6 벽마..
인접성 판단하기 search - grouping 내부 외부 여부 파악(grouping 후 이웃하는 그룹의 이웃 번호나 out여부 활용) 백준 2638 치즈(외부 공기 파악: out과 이웃한 0들의 그룹) 백준 16988 Ba...aduk2(easy) (고립된 검은 돌 파악: 빈칸과 이웃하지 않은 검은 돌의 그룹)
백준 14502 연구소 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크기가 N×M인 직사각형으로 나타낼 수 있으며, 직사각형은 1×1 크기의 정사각형으로 나누어져 있다. 연구소는 빈 칸, 벽으로 이루어져 있으며, 벽은 칸 하나를 가득 차지한다. 일부 칸은 바이러스가 존재하며, 이 바이러스는 상하좌우로 인접한 빈 칸으로 모두 퍼져나갈 수 있다. www.acmicpc.net 안전 영역의 크기를 구하는 공식을 잘못 구했다. 빈칸의 개수에서 추가된 벽의 개수(3)와 확산된 바이러스의 개수를 빼면 안 된다. DFS에서 거쳐간 모든 바이러스의 개수가 빠지고, 확산되기 전 바이러스도 포..
백준 1290 배럭 1290번: 배럭 첫재 줄에 상대방의 배럭을 파괴시키고, 상대방의 마린을 모두 죽이려고 할 때, 필요한 최소 턴의 수를 출력한다. 불가능한 경우에는 -1을 출력한다. www.acmicpc.net loop fision을 시도했지만 적용 불가한 문제로 판명되었다. #include using namespace std; intN, B, U, M, TU, t; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> N >> B >> U; for(t = 1; ; ++t) { B -= N; N -= TU; if (B > 0) { TU += U; } else { break; } } TU += B; for (; TU > 0 && N > 0; ..