본문 바로가기

분류 전체보기

(484)
[프로그래머스] 피보나치 수 / 재귀함수, 반복문 문제 풀이 1(재귀 함수) #include #include using namespace std; int fibo(int n){ if(n==0) return 0; else if(n==1) return 1; else { return fibo(n-1) + fibo(n-2); } } int solution(int n) { return fibo(n)% 1234567; } 재귀 함수를 이용하여 문제를 풀 경우 일부 문제에서는 런타임 에러가 발생한다. 재귀 함수 장점 -변수를 여럿 만들거나 반복문을 사용하지 않아 상대적으로 코드가 간결하다 단점 -지속적으로 함수를 호출하게 되어 반복문에 비해 메모리를 더 많이 사용한다 -메모리를 많이 사용하여 속도 저하로 이어진다. 런타임 에러가 났던 이유는 재귀 함수의 깊이에는 한..
[프로그래머스] 행렬의 덧셈 문제 풀이 #include #include using namespace std; vector solution(vector arr1, vector arr2) { vector answer; for(int i=0; i
[프로그래머스] 최대공약수와 최소공배수 / 유클리드 호제법 문제 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다. 풀이 #include #include #include using namespace std; vector solution(int n, int m) { vector answer; for(int i=min(n,m); i>=1; i--){ if(n%i==0 && m%i==0){ answer.push_back(i); answer.push_back(n/answer[0] * m/answer[0] * answ..
[프로그래머스] 직사각형 별찍기 / append 문제 이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다. 별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요. 풀이 1 #include using namespace std; int main(void) { int a; int b; cin >> a >> b; for(int i=0; i b; s.append(a, '*'); for(int i=0; i
[프로그래머스]정수 내림차순으로 배치하기/sort, stoll, stoi 문제 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰 것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를 들어 n이 118372면 873211을 리턴하면 됩니다. 풀이 #include #include #include #include using namespace std; long long solution(long long n) { long long answer = 0; vector num; string s = to_string(n); for(int i=0; i
[토익공부]22.01.24~22.02.20 목표 점수를 맞을 수 없을까 봐 불안감에 떨며 지내던 한 달이었다. 공부해도 머리에 들어오는 게 없는 것 같았고, 문제집을 풀 때면 전날 푼 것보다 점수가 덜 나올까 무서웠다. 시험이 끝나고 생각해보니, 지문 하나 읽기 벅차 하던 내가 이렇게 목표 점수를 가지고 고민하고 노력했다는 것이 참.. 대견했다..! 올해의 토익은 2월을 마지막으로 보고, 영어권 미디어 감상을 늘린 후 다시 재도전할 것이다!(목표 점수를 위해!) 고생했어 나, 계속 파이팅~:)
[프로그래머스] 제일 작은 수 제거하기 / erase , min_element 문제 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다. 풀이 #include #include #include using namespace std; vector solution(vector arr) { vector answer; if(arr.size()==1) {answer.push_back(-1); return answer;} arr.erase(min_element(arr.begin(), arr.end())); return answer = arr; }
[프로그래머스]자릿수 더하기 / to_string 문제 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를 들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. 풀이 #include #include using namespace std; int solution(int n) { string s = to_string(n); int answer = 0; for(int i=0; i