본문 바로가기

Algorithm

(68)
[EPPER/11회 9번]올바른 괄호 배열 구하기(중-2) #include using namespace std; /* 재귀함수로 계속해서 괄호를 생성해본다 괄호를 그릴때 -> 이 방향으로 그리고 항상 (가 먼저와야 하므로 괄호를 그릴때 "("부터 그리기 떄문에 제한된 갯수 내에서 (는 얼마든지 계속해서 그릴수 있지만, ex. (((( ) 뭐이런건 된다 그뒤에 )를 더그리면되니깐 그런데 )의 갯수는 제한이 된다. (를 막그렸을떈 )로 수습해서 하나의 괄호로 만들수 있지만 ))를 막그린 이상 (를 그려봣자 괄호가 완성안되니깐 ex. ()))))는 안된다 (를 추가해봤자 이미 틀린 괄호니깐 =>결론을 말하면 괄호를 그려나갈 때, "("의 수보다 항상 ")"의 수가 많거나 같아야 한다. 이를 지키면서 괄호를 재귀적으로 그려보면, (이 0개, )이 0개 남으면? -> 종..
[EPPER/13회 7번]회문을 만들기 까지의 횟수(중-1) 재귀를 이용 #include #include using namespace std; /* 배열의 처음과 맨 끝부터 비교해서 같으면 -> 그 다음을 재비교 (재귀) 배열의 처음과 맨 끝부터 비교해서 다르면 -> 둘중 더 작은쪽이 그다음과 더해짐 -> 재비교 */ int answer = 0; int solution(int* arr, int start, int end) { if(start >= end)return answer; else{ if(arr[start]>arr[end]){ //뒤쪽이 더 작음 answer++; arr[end-1] = arr[end] + arr[end-1]; solution(arr,start,end-1); }else if(arr[start]> n; for (i = 0; i < n; i++..
[EPPER/12회 2번] 즐거운OT 방번호만들기(하-3) #include using namespace std; int main() { int room_n;//방 번호 int in_n; //방 안에서의 번호 int num; cin>>num; room_n = num/15 + 1; in_n = num%15; //if(room_n == 0) room_n=1; if(in_n == 0){ in_n=15; room_n--; } cout
[EPPER/11회 7번] 단순계산기(하-2) #include #include using namespace std; //평균을 크게 만드는 방법은 가장 작은 수부터 평균을 구해나가는것 double solution(int num_arr[], int n){ int sol; //오름차순 정렬 sort(num_arr,num_arr+n); double m = num_arr[0]; for(int i=0;i> n; for (int i = 0; i > num_arr[i]; cout

728x90