문제분석123456789를 순서대로 사용하고 stack에 push pop을 자유자재로 해서 주어진 수 배열을 만들 수 있을것인지?만약 처음 4를 만나면 1,2,3,4를 push하고 4를 pop 해야 함그리고 다음 6을 만나면 5, 6까지 push하고 6을 pop 이것을
2x2 사각형을 이루지 않는 배치의 가짓수 구하기N = 25, M = 25로 모든 조합의 수를 확인하기에 충분한 시간복잡도이므로백트래킹을 이용해 모든 경우의 수를 확인한다nemo(0,0) -> nemo(0,1) -> ... -> nemo(0,m) -> ... -> ne
문제 풀이 N^2는 시간초과가 나기때문에 Brute Force로 풀 수 없는 문제이다. 정렬을 한 뒤 O(NlogN) for문을 돌면서 이분탐색을 하면 O(N * logN) O(NlogN) 시간복잡도로 풀 수 있다. 오름차순으로 정렬 -99 -2 -1 4 98 fo
https://www.acmicpc.net/problem/2448와 빈공간을 자연스럽게 섞어 문제를 풀 수 있다.middle : 이전 삼각형의 높이height : 현재 삼각형의 높이이전에 작은 삼각형을 공백 하나를 사이에 두고 복사함이전에 작은 삼각형 왼쪽과
https://www.acmicpc.net/problem/14940목표지점에서 BFS를 진행하고 거리를 1씩 더하면서 진행하면 풀 수 있다.입력으로 주어진 이차원 배열을 이용할 것이기 때문에 거리를 -1부터 시작한다.bfs에 사용하기 위한 Queue에 목표지점
https://www.acmicpc.net/problem/24680부터 100까지 비가 온다고 했을 때 안전영역이 가장 많았을 때 안전영역의 수를 출력map에 0부터 100까지 비가 왔을 때 이중 for문을 돌려서 bfs를 할 수 있는 곳을 찾는다. bfs를
0에 상하좌우로 인접하면 인접한 면마다 -1처리호수도 바다로 취급두 함수로 나눠서 풀이한다meltingcheckmelting()map에서 0을 찾고 인접한 빙산에 -1를 한다.만약 1인 빙산을 0을 만들었을 때 0을 바다로 인식하지 않기위해 visit 배열을 사용하였다
V가 100,000개이므로 시간초과가 나지 않도록 풀어야 한다.트리의 지름을 구하는 공식은 한 점에서 가장 먼 점을 구한 뒤그 점에서 가장 먼 거리를 구하면 된다.static ArrayList<Edge>\[] nodes;인접리스트 nodes에는 Edge들이 들어간
https://www.acmicpc.net/problem/9935입력문자열의 문자를 하나하나 살펴보면서 폭발 문자열의 끝 자와 같은지 확인하고 만약 끝자가 같다면 폭발문자열이 포함되는지 확인한다StringBuilder를 스택처럼 사용하며 문자열을 넣으면 된다.
https://www.acmicpc.net/problem/1446dp배열을 만들고지름길이 있으면 비교 후 dp를 업데이트list\[] 배열과 dp\[] 배열을 두 개 준비한다list\[] 배열은 지름길에 대한 정보를 담는 배열list\[]는 int 배열을 가진
https://www.acmicpc.net/problem/17089인접행렬로 그래프를 구현하고 리스트에 노드마다 친구의 수를 넣는다.3중 for문을 돌리면서 세 명이 친구이면 총 친구를 세고 min값을 갱신한다.friend - 인접행렬nums\[] - 친구 수
https://www.acmicpc.net/problem/1976 문제 풀이 유니온파인드 문제이다 유니온파인드(Union-find) = 합집합 찾기 = 상호배타적 집합 여러노드가 존재할 때, 두 개의 노드를 선택해서 두 노드가 서로 같은 그래프에 속하는지 판별하는 알
https://www.acmicpc.net/problem/1863처음 문제를 봤을 때 그래프를 그리고 그래프를 이용해서 건물을 찾을까 했는데 입력으로 좌표를 전부 준게 아니라 바뀐 위치 좌표만 줬기 때문에 이걸 그대로 이용해서 문제를 풀 수 있지않을까 생각했다
https://www.acmicpc.net/problem/2583눈금을 칠한 곳을 못가게 visit에 저장눈금을 칠하지 않은 곳을 bfs()ans - 영역의 수arrayList - 영역의 크기들을 저장하는 배열입력으로 받은 넓이만큼 visit을 true로맵을
https://www.acmicpc.net/problem/17615볼의 개수를 이용하는 풀이를 생각하였다.뭉쳐있는 곳으로 이동하기 때문에 끝에 뭉쳐있는 개수는 빼주어야 한다.여기서 어느 뭉쳐있는 방향으로 이동할지 결정해야하는데 만약 시작과 끝의 색깔이 동일하다
https://www.acmicpc.net/problem/23747입력받은 여행기록을 for문으로 돌면서네 방향으로 이동하거나 W를 만나면 BFS를 진행한다.마지막 hr,hc에서 자기자신과 네 방향에 시야를 표시한다. Graph 문제는 이제 쉽게 뚝딱 뚝딱 풀
https://www.acmicpc.net/problem/16507Brute force로 구하게 되면 R C Q = 1000 1000 100000 으로 시간복잡도가 십억을 넘는다. 따라서 누적합을 이용해서 풀었다.파랑 - 빨강 - 초록 + 분홍을 하게
https://www.acmicpc.net/problem/1149 문제 풀이 조건을 어렵게 써놨는데 수학에서 귀납적 증명법에서 따온 것 같았다. 그냥 이웃한 집의 색깔이 같으면 안된다는 조건이다. 처음 봤을 때 프로그래머스의 정수삼각형이 생각났다. 주어진 모양만
https://www.acmicpc.net/problem/1946서류 등수를 기준으로 정렬하고정렬한 리스트를 돌면서 면접 최소등수를 가지고 있고만약 최소등수보다 높으면 통과, 낮으면 탈락으로 판단한다.서류 등수를 기준으로 오름차순 정렬한다.1등부터 반복하므로
https://www.acmicpc.net/problem/1240딱 보고 노드사이의 거리는 다익스트란데? 하면서최단경로(https://www.acmicpc.net/problem/1753)문제가 떠올랐다.차이점은 여러 노드에서의 최단경로를 구해야하는 것
https://www.acmicpc.net/problem/21608문제를 간략하게 설명하자면 자리배정을 하는데 각 학생이 좋아하는 학생의 번호를 네 개 가지고 있고 입력 순서대로 자리를 배정한 뒤 학생의 만족도 총 합을 구하는 문제이다.자리를 배정하는 규칙은
https://www.acmicpc.net/problem/7682입력에 주어진 상태가 틱택토게임이 정상적으로 끝난 상태인지 묻는 문제였다.틱택토게임판의 크기가 3\*3의 작은 크기임을 이용해서 풀어야겠다고 생각했다.테스트케이스를 그림으로 그리면서 invalid
https://www.acmicpc.net/problem/4179fireMap이라는 새로운 맵을 만들어 최대값으로 초기화 한 후 Fire이 가는 시간(거리)을 채운다.(예시 테스트케이스의 fireMap)지훈이 탈출할 수 있는 시간을 구한다.a. 탈출구간에 fi
https://www.acmicpc.net/problem/22251N - 바꿀 숫자의 최대값K - 자리수P - 바꿀 수 있는 LED 최대 값X - 현재 층K 자리의 LED 숫자 중 P 개의 LED를 반전시켜 바뀐 숫자가 1 ~ N이 되도록 바꿀 수 있는 숫자의