
우선 완전 탐색이라는 것은 대충 감이 왔을 것이다.완전 탐색을 어떻게 구현할지가 문제이다. 법칙 1 : 완전 탐색은 항상 앞에서 뒤로간다. (인덱스 0에서부터 --> 방향으로만 진행한다는 의미)법칙 2 : 인덱스 0에서부터 --> 방향으로만 진행하며, 각 인덱스에서 선

뮤탈이 SCV를 공격해서 전부 죽이는데 걸리는 최소 시간을 찾는 문제이다.최악의 경우 몇 번의 공격이 필요할까? 재귀로 구현하는 경우 -> O(6^k) 의 시간 복잡도이다. k는 최악의 경우 21 정도로 예상된다.\-> 무조건 시간 초과priority_queue 로 풀

불은 4방향 모두로 퍼지고, 지훈이는 4방향 중 하나로 움직인다.지훈이가 불을 피해서 가장자리에 도달할 수 있으면 가장자리에 도달하는 최단 시간을 출력하고, 불을 피해서 가장자리에 도달할 수 없으면 IMPOSSIBLE을 출력한다.그 과정에서 벽(\`BFS는 4방향으로

어쨋든 동시에 이용시간이 겹치는 횟수 = 필요한 방의 개수 이다.따라서 이용 시간에 해당되는 경우마다 카운팅배열에 ++ 해주면, 배열의 최댓값이 결국 필요한 방의 개수이다.시간복잡도는 O(n) 이다.사람의 사고 과정을 생각해보자.우린 가장 일찍 대실이 시작되는 방 부터

1. 풀이 시도 1 - 완전탐색 > 완전 탐색시 시간복잡도가 O(eCk)인데, 이러면 최악의 경우 1000000C500000 이라 절대 불가..) 시도 2 - 큰 순서로 k개 찾고 -> 무적권 적용 > 정렬해서 가장 큰거 3개 찾고, 앞에서부터 벡터 순회하면서

오름차순 순열로 원본을 조작모든 순열을 탐색하니, 시간복잡도는 내부로직 고려 x시 O(n!) 이다.사용자가 직접 정의해서 구현한다대부분의 연산이 if (b.size() == n) {...} 에서 발생한다. 해당 부분이 메인 로직이고, 시간복잡도는내부로직 고려 x시 O(

완전탐색으로(프루닝 없이도 시간 통과 가능) 최소 치킨 거리를 찾는 문제이다. 도시에 있는 치킨집 중에서 최대 M개 고르라는데, 당연히 M-1개보다는 M개를 골랐을때 치킨 거리가 더 적은 경우의수가 존재한다. 따라서 치킨집은 M개를 골라야한다. 모든 문제는 처음에 완

모든 경우의 수를 탐색하는 알고리즘으로, (순열 OR 조합) + 로직 으로 구현한다전체 경우의 수를 다 검사해봐도 연산량 고려했을때 시간 제한을 통과하는 경우for문 또는 반복문을 이용해 주어진 범위를 모두 검사하는 방법반복문으로 완전 탐색 구현이 가능하면, 재귀말고

#인증 [날짜] 2026-03-19 이름: 정재윤 문제: https://www.acmicpc.net/problem/17298 제출번호: 104074619 문제 및 풀이 요약: 오른쪽에 위치한 수 중 처음으로 만나는 큰 수를 출력해야한다. 각 수마다 대응되는 오큰수

Tree에서 특정 노드를 삭제했을때 리프 노드의 개수를 구하는 문제이다.DFS를 통해 트리 순회가 가능하므로, 루트 노드에서부터 시작해서 트리를 순회한며, 삭제하는 노드를 만나면 인접 리스트 순회 과정에서 continue로 무시해주면 된다.이게 기본적인 컨셉이고,,구

DFS를 이용해 테두리를 제거하는 문제이다.(1) 가장 바깥쪽은 전부 치즈가 존재할 수 없는 영역이라는 조건은 왜 주어졌을까 ?이 문제에서 특이한점은 가장 바깥쪽은 전부 치즈가 존재할 수 없는 영역이라는 것이다.왜 이런 조건을 주었을까? 이 조건 덕분에 우리는 어디서

이 문제는 3가지 단계로 풀면된다(1) 벽을 3개 세우기(2) DFS 나 BFS로 바이러스 퍼뜨리기(3) 안전영역 카운트하기N,M이 모두 최대 8이다. 그렇기때문에 최악의 경우, 공간은 최대 64개이다.64C3으로 조합을 통해 벽을 세우면 -> 21504번 반복(이때

괄호 검사 문제인데 종류가 2개이다.괄호가 아니라면 무시하고, 괄호인 경우에 대해서만 처리해주면된다.조건문을 치밀하게 설계하지않아서 빈틈이 생겼고, 거기서 오류가 발생했다. 그냥 단순하게위와 같이 모든 경우의 수에 대해 (마치 switch문 처럼) 조건문을 작성하는 방

괄호 검사는 대표적인 stack을 활용해서 풀이하는 문제이다.(는 stack에 저장해두고 )를 만나면 stack이 비어있지 않은 경우(=stack에 (가 존재하는 경우) pop() 해주면된다.그렇게해서 최종 stack이 비어있으면 올바른 괄호이고, stack이 비어있
업로드중..업로드중..이 문제는 666이 들어가는 수 중에서 n 번째로 작은 수를 찾는 문제이다.처음에 조합,순열 이런 느낌으로도 풀어보려했으나, 잘 떠오르지 않았다.이 문제를 잘보면 N<=10000 이다. 따라서 내가 찾는 수는 아무리 커도 6660000 안에서
업로드중..업로드중..1팀 VS 2팀 경기의 득점 정보를 입력받고, 이를 기반으로 각 팀이 몇분, 몇초 동안 승리를 유지하고 있었는지를 출력하는 문제이다.이 문제의 포인트는 3가지이다.(1) scnaf()로 시간, 분 나누어 입력받기(2) 분:초 형식의 시간 계산시 분

팩토리얼 문제는 수가 기하급수적으로 커지기때문에 항상 자료형, 입력 범위를 잘 봐줘야한다.이 문제는 팩토리얼 문제인데, 심지어 입력도 <= 10억 조건이 걸려있다.O(logN)의 알고리즘만 사용이 가능하다.N!이 약수로 10을 몇개 가지는지 찾으면 N!뒤에 0이
구현 문제이다. n줄에 걸쳐 소문자+숫자를 입력받고 그중에 숫자만 추출(앞에 붙은 0은 생략)해서 비내림차순으로 출력하는 문제이다. 처음에 그냥 "걍 대충 아스키코드 비교로 숫자 추출하고 순회하면서 0제거 해서 벡터에 넣어서 sort()조지면 돼지않을까?" 하고

CubeMX의 MAX_PRIORITEIS 설정을 통해 사용할 Task 우선순위의 범위를 설정할 수 있다.pvTaskCode : Task 함수pcName : Task 함수의 이름usStackDepth : Stack에 넣을 수 있는 word(4Byte) 단위 데이터 개수p