BFS, DFS 구현문제
괄호의 string을 입력받아 괄호 쌍이 맞는 경우와 아닌 경우를 확인'('이 들어온 경우 stack에 push, ')'이 들어온 경우 pop을 한 다음, 마지막에 stack이 비어있다면 true, 아닌 경우 false
N을 입력 받으면 5, 3으로 구성할 수 있는 최소값 출력출력할 수 없다면 -1 리턴문제 링크N을 5로 나눈 몫과 나머지를 계산하고 나머지가 3으로 나누어 떨어지는 경우 5의 몫+3의 몫으로 리턴만약 위의 방법으로 구할 수 없는 경우 3을 사용하는 것을 강제해가며 계산
회의 시작 시간, 종료 시간을 입력받았을 때 최대로 회의를 많이 할 수 있는 숫자를 구하는 문제그리디 알고리즘으로 풀면 된다.단, 입력을 받을 때 종료 시간, 시작 시간 순으로 sort를 해주면 된다.
BFS를 이용해 미로에서 최단 경로를 찾는 문제이미 들렸던 곳인 경우를 확인하기 위해 visit 체크Queue에 다음으로 순회할 곳을 qushQueue가 empty가 되기 전까지 계속 탐색
Graph 상의 완전 탐색DFS를 이용해 완전 탐색BFS를 이용해도 OK!
그래프 완전 탐색으로 분리된 단지 찾기모든 위치를 탐색하며 1이 나온 경우 그 시점부터 DFS로 완전 탐색DFS 시 visit을 업데이트
BFS를 이용해 완전 탐색을 하되, Starting Point가 여러 지점이고, 빈 지역이 있는 문제입력된 지도 정보를 BFS에서 업데이트하도록 구현해 visit을 따로 선언하지 않음BFS에 들어가기 전에 탐색할 필요가 없는지를 확인해 없다면 return 0BFS 이후
최단 경로를 찾는 문제로, 이동할 수 있는 방법이 i-1, i+1, 2\*i인 경우N에서 출발해 K로 도착하는 최단 경로를 BFS를 이용해 찾는다.단, N과 K가 동일한 경우 BFS 이전에 return한다.방문한 곳은 visit에 집어넣는데, vector<bool
점화식을 세워 동적으로 푸는 문제한 숫자가 정해지면 갈 수 있는 갈래는 최대 3갈래계산된 내용은 global하게 선언된 vector에 입력하고, 만약 해당 값이 없는 경우만 Recursive하게 계산https://beginnerdeveloper-lit.tist
그리디 알고리즘으로 리소스 분배하는 문제리소스를 분배하기 위해 가장 짧게 사용하는 순으로 사용
입력된 수열 중 임의의 3개를 뽑아 특정 수보다 작거나 같은 수 중 가장 큰 수를 return그냥 냅다 다 찾으면 된다. 다만, 입력받은 수를 vector에 저장해서 sort한 다음 일정값보다 큰 경우 loop를 break하는 방법을 생각해보았으나, sort하는 시간이
입력 받은 수와 각 자리 수를 합했을 때 특정수가 되는 조건을 만족하는 모든 수 중 최소값1부터 일일히 조건 확인단, 속도를 증가시키기 위해 1부터 반복을 하는게 아니라 입력받은 수/2부터 반복 시작
정수 쌍들을 입력받아, 해당 정수 쌍이 전체에서 몇 등인지 출력. 비교 치 정수 쌍의 두 원소 모두 커야 큰 것으로 인정각 정수 쌍이 전체 정수 쌍들 중 몇 위인지를 일일이 계산.단, sort하여 구현하는 방법을 생각했으나 비교 연산이 쉽기 때문에 sort하는데 시간이
1 문제 정수 쌍들을 입력받아, 해당 정수 쌍이 전체에서 몇 등인지 출력. 비교 치 정수 쌍의 두 원소 모두 커야 큰 것으로 인정 2 Idea 각 정수 쌍이 전체 정수 쌍들 중 몇 위인지를 일일이 계산. 단, sort하여 구현하는 방법을 생각했으나 비교 연산이 쉽기
배열 중 8\*8 배열을 추출해, 특정 색이 번갈가가며 있지 않은 경우의 수 count모든 Case 체크
다이나믹 프로그래밍 문제 중 0-1 배낭 채우기다이나믹 프로그래밍을 이용해 (N+1)\*(K+1) 배열을 만들어 점화식을 이용해 하나씩 채운다https://jeonyeohun.tistory.com/86
이동 조건이 체스판의 나이트인 BFS를 이용한 최단 경로 문제BFS를 이용한 최단 거리
각 도시별 기름값과 도시 간 거리가 주어졌을 때 어디서 기름을 넣으면 가장 싸게 끝까지 도달할 수 있는지 계산i번째 도시부터 출발해서 기름값이 더 싼 도시까지는 i번째 기름으로 간다.문제에서 기름값이랑 도시간 거리가 10억까지기 때문에 long으로 계산하도록 구현한다.
단어의 알파벳을 임의의 숫자로 치환했을 때, 단어의 총 합이 최대가 되는 값을 찾아라각 알파벳 별 합을 구한 다음, 가장 큰 숫자부터 9, 8, ..., 1 부여https://excited-hyun.tistory.com/145
조건이 주어졌을 때 단순 구현문제를 성실히 구현하면 된다.
날짜를 계산하되, 윤년에 대한 예외 처리 추가문제를 성실히 구현하면 된다...
주어진 조건에 대한 구현 문제조건을 잘 구현하면 된다...
주어진 조건에 대한 구현 문제 + 약간의 Trick동일 문자가 N번 반복하는 것도 통과 되어야 한다. 즉 어떠한 문자라도 N번은 정답에 포함되어야 한다. 따라서 정답의 길이는 N\*len(str)이 된다.또한 어차피 부분 수열로 문자열을 추출하기 때문에 주어진 문자열을
그래프의 연결 요소 개수 찾기없음..
피보나치 함수를 푸는 문제를 Recursive하게 구할 때 return 0과 return 1이 되는 수 Countreturn 0이 되는 수와 return 1이 되는 수를 피보나치 수열로 푼다.단, 문제의 제한 시간이 조금 빡빡한 것 같아서 최대 N인 40까지 입력을 받