본문 바로가기

반응형
SMALL

알고리즘 문제 풀이/Programmers

x만큼 간격이 있는 n개의 숫자 - 1단계 (C++) #include #include using namespace std; vector solution(int x, int n) { vector answer; for (int i = 1; i 더보기
제일 작은 수 제거하기 - 1단계 (C++) #include #include using namespace std; vector solution(vector arr) { vector answer; int min = 999999; if (arr.size() == 1) { answer.push_back(-1); return answer; } for (int i = 0; i arr[i]) min = arr[i]; } for (int i = 0 ; i < arr.size(); i++){ if (min == arr[i]) continue; else answer.push_back(arr[i]); } return answer; } 더보기
핸드폰 번호 가리기 - 1단계 (C++) #include #include using namespace std; string solution(string phone_number) { string answer = ""; for (int i = 0; i < phone_number.size(); i++){ if (i < phone_number.size() - 4) answer += "*"; else answer += phone_number[i]; } return answer; } 더보기
행렬의 덧셈 - 1단계 (C++) #include #include using namespace std; vector solution(vector arr1, vector arr2){ vector answer; for (int i=0; i < arr1.size(); i++){ vector v; for (int j=0; j < arr1[0].size(); j++){ v.push_back(arr1[i][j] + arr2[i][j]); } answer.push_back(v); } return answer; } 더보기
피보나치 수 - 2단계 (C, C++) #include #include #include int solution(int n) { int answer = 1; int f1 = 0; int temp; for (int i = 0; i < n - 1; i++) { temp = answer; answer = answer + f1; f1 = temp; answer %= 1234567; f1 %= 1234567; } return answer; } // 문제가 마지막 결과값을 1234567로 나눈 값을 리턴하라인 줄 알았는데, 그게 아니었네요. 나머지를 계속해서 더해라는 뜻이었습니다. // 동적 배열을 사용 #include #include #include int solution(int n) { int answer = 0; int *arr = (int*)mal.. 더보기
하샤드 수 - 1단계 (C, C++) #include #include #include bool solution(int x) { bool answer = true; int x2 = x; int s = 0; while (x) { s += x % 10; x /= 10; } if (x2 % s != 0) answer = false; return answer; } #include using namespace std; bool solution(int x) { bool answer = true; int s = 0; int temp; temp = x; while (temp) { s+= temp % 10; temp /= 10; } if (x%s ==0) answer = true; else answer = false; return answer; } 더보기
콜라츠 추측 - 1단계 (C, C++) #include #include #include int solution(long long num) {// long long으로 안하면 범위 넘어가서 이상한 답 뜸 long long answer = 0; while (1) { if (num == 1) break; // 먼저 확인 안하면 edge case로 1이 들어왔을 때 처리를 못한다. answer = answer + 1; if (num % 2 == 0) { num = num / 2; } else { num = (num * 3) + 1; } if (answer >= 500) { answer = -1; break; } } return answer; } #include #include using namespace std; int solution(int num.. 더보기
정수 제곱근 판별 - 1단계 (C, C++) #include #include #include long long solution(long long n) { long long answer = -1; for (long long i = 1; i 더보기

반응형
LIST