백준 실버 1 DP 알고리즘 문제
백준 실버 1 우선탐색 문제
백준 실버 1 문자열 문제
백준 실버1 시간 관리
백준 실버1 그래프 우선 탐색
백준 실버1 DP
백준 골드5 브루트포스
백준 골드5 최대공약수
백준 골드5 최대공약수 최소공배수 투포인터 브루트포스
백준 골드5 dps 재귀
백준 골드4 그래프
백준 실버1 그래프
백준 실버3 DP
백준 실버2
문제신종 바이러스인 웜 바이러스는 네트워크를 통해 전파된다. 한 컴퓨터가 웜 바이러스에 걸리면 그 컴퓨터와 네트워크 상에서 연결되어 있는 모든 컴퓨터는 웜 바이러스에 걸리게 된다.예를 들어 7대의 컴퓨터가 <그림 1>과 같이 네트워크 상에서 연결되어 있다고 하자.
문제널리 잘 알려진 자료구조 중 최소 힙이 있다. 최소 힙을 이용하여 다음과 같은 연산을 지원하는 프로그램을 작성하시오.배열에 자연수 x를 넣는다.배열에서 가장 작은 값을 출력하고, 그 값을 배열에서 제거한다.프로그램은 처음에 비어있는 배열에서 시작하게 된다.입력첫째
문제 링크 https://www.acmicpc.net/problem/2579 >풀이 방식 해당 문제를 읽자마자 DP 문제인 것을 알았고 마지막 계단에 도착했을 때, 두가지 경우의 수를 생각했다. i번째 계단과 i-1번째 계단이 연속될 경우 연속되지 않게 i번째
문제 링크https://www.acmicpc.net/problem/2178풀이 방식dfs 탐색을 통해 (0, 0)부터 (N, M)까지의 이동 횟수를 카운트 한다.전체 코드
문제 링크https://www.acmicpc.net/problem/5430풀이 방법리스트의 reverse함수는 시간복잡도가 O(N)이므로, R 이 있을 때마다 reverse를 하지 않고, flag 변수 값을 변경해준다.D 함수를 실행할 때, 배열의 크키가 0이
문제 링크https://www.acmicpc.net/problem/7569풀이 방식기존 2차원 배열에서 하던 dfs를 3차원 배열에서 시도한다.입력을 받을 때, 어느 좌표에 토마토가 있는지 확인하고, 큐에 삽입한다.큐 안에 있는것들을 하나씩 dfs로 검사하면서
문제 링크https://www.acmicpc.net/problem/10026풀이 방식bfs 방식으로 적록색맹이지 않은 사람의 영역 갯수를 구한다.visited 를 초기화한 후에 적록색맹의 영역 갯수를 구한다.전체 코드
문제 링크https://www.acmicpc.net/problem/9095풀이 방식정수 4의 경우의 수는 7(1+2+4)이고, 5의 경우의 수는 13(2+4+7)인걸 확인 가능하다.따라서 정수 N의 경우의 수는 (N-3) + (N-2) + (N-1)의 합으로,
문제 링크https://www.acmicpc.net/problem/11279풀이 방식힙큐 자료구조를 사용한다.최소순으로 정렬되는 힙큐 자료구조를 최대힙으로 바꿔준다.힙큐 자료구조에 정수값과 정수값의 역수를 함께 넣어 역수 기준으로 정렬되도록 한다.전체 코드
문제 링크https://www.acmicpc.net/problem/1238이번 문제의 태그는 다익스트라, 나에겐 생소한 방식이었기 때문에 다익스트라가 뭔지에 대해 먼저 공부할 필요가 있었다.다익스트라란?하나의 정점에서 다른 정점들까지의 최단 거리들을 찾는 최단
문제 링크https://www.acmicpc.net/problem/1504풀이 방식각 노드간의 거리를 양방향 그래프로 저장한다.v1와 v2를 포함하는 1부터 N까지의 경로 두가지를 구한다.1 > v1 > v2 > Nor1 > v2 > v1 > N이 때, 다익스
문제 링크https://www.acmicpc.net/problem/1753풀이 방식기존 다익스트라 문제에서 K번 정점부터 각 노드간의 거리를 출력하는 문제이다.이 때, 해당 노드와 연결되어있지 않으면 distance 리스트에는 INF(1e9)로 저장되어있기 때
문제 링크https://www.acmicpc.net/problem/2096풀이 방식해당 문제는 DP 문제로 점화식은 다음과 같다.maxDP1i = arri + max(maxDP1i-1, maxDP2i-1)maxDP2i = arri + max(maxDP1i-1,
문제 링크https://www.acmicpc.net/problem/1991풀이 방식각 노드들을 입력 받아 그래프 형식으로 트리를 저장한다.전위순회, 중위순회, 후위순회를 각각 함수로 정의한다.순회 방식에 따라 출력과 재귀함수의 순서를 달리해준다.전체 코드
문제 링크https://www.acmicpc.net/problem/1916풀이 방식기존에 사용해왔던 다익스트라 방식을 사용하면 된다.지금껏 풀어왔던 다익스트라 문제들과 크게 다를것이 없는 문제이다.전체 코드
문제 링크https://www.acmicpc.net/problem/1019첫번째 접근당연히 틀리단걸 알지만 입력받은 수 N만큼 반복문을 돌면서 N의 자릿수 하나하나 딕셔너리에 저장하는 방식으로 접근했었다.당연히 시간초과가 발생했고 굳이 딕셔너리에 저장할 필요도
문제 링크https://www.acmicpc.net/problem/15685접근 과정지문을 여러번 읽어야 겨우 이해가 되는 문제였던 것 같다.0세대에서 1개1세대에서 1개2세대에서 2개3세대에서 4개의 선분이 그려진다.그리고왼쪽 방향을 0위쪽 방향을 1오른쪽
https://www.acmicpc.net/problem/16235자료구조 및 메서드 선언이번 문제에서는 필요한 자료구조가 조금 많았다.살아있는 나무, 죽은 나무, 번식된 나무의 정보를 저장할 리스트들이 필요했는데, 간편하에 ArrayDeque로 통일하여 생성
https://www.acmicpc.net/problem/17144문제 접근 방식문제를 읽고 미세먼지 확산과 공기청정기에 청정 기능을 각각 메서드로 구분지어야겠다는 생각이 들었다. 다만, 공기청정기로 먼지들을 각각 시계방향, 반시계 방향으로 동시에 회전시키기엔
시작 전 회고 처음에 문제에 접근할 땐 왼쪽 오른쪽 방향에서 각각 내리막길을 놓을 수 있는지 검사하고, 위쪽, 아래쪽에서 각각 검사하는 방식으로 진행했었다. 하지만 잘못된 접근이었고, 내리막길만 검사할게 아니라 오르막길의 가능 여부도 따져야했기 때문에, 양옆 방향에서 각각 검사할게 아닌 한쪽 방향에서 한쪽만 검사해도 충분한 문제였다. > 접근 방법 ...
치킨먹고싶다
인구 이동
게리맨더링 문제 풀이
https://www.acmicpc.net/problem/14502조합벽 3개를 놓을 수 있는 모든 경우의 수를 구해야 한다.N\*M 크기의 배열의 각 칸을 0~N\*M-1까지의 번호로 가정을 하고, 해당 범위 중 3개를 고를 수 있는 조합을 만든다.조합으로
https://www.acmicpc.net/problem/3190접근 방식뱀이 이동하고, 길이가 변화하는 로직을 덱(ArrayDeque)으로 구현해보았다.뱀이 앞으로 이동하면 덱의 앞부분에 해당 좌표를 입력하고, 뱀이 사과를 먹지 못하면 덱의 뒷부분을 제거(p
https://www.acmicpc.net/problem/13023접근 방식이번 문제는 그래프 탐색 문제로, AB, BC, CD, DE의 친구관계가 있는지 가능한 모든 경우의 수를 검사하여 확인한다.즉 탐색 시 트리의 깊이가 4단계가 올 수 있으면 가능한 것이
https://www.acmicpc.net/problem/17135문제 접근전체 코드