본문 바로가기

Algorithm

(402)
[프로그래머스]약수의 개수와 덧셈 문제 풀이 #include #include #include using namespace std; int solution(int left, int right) { int answer = 0; for(int i= left; i> 1; i b ? 0 : sign(a)*a + solution(a + 1, b); } solution을 재귀 함수로 만들었고, sign 함수의 count & 1 부분을 이용하여 홀수, 짝수를 구분했다. 다양한 풀이들을 리뷰하는게 공부하는데 많은 도움이 되는 것 같다.
[프로그래머스]3진법 뒤집기 문제 풀이 #include #include #include using namespace std; int solution(int n) { int answer = 0; vector num ; while(n>0){ num.push_back(n%3); n /=3; } for(int i=0; i 0){ v.push_back(n%3); n/=3; } int k = 1; while(!v.empty()) { answer += k*v.back(); v.pop_back(); k*=3; } return answer; } pow를 쓰지 않고 3진수를 10진수로 변경해주었다!
[프로그래머스]포켓몬 / Set 문제 풀이 #include #include using namespace std; int solution(vector nums) { int answer = 0, n = nums.size()/2; sort(nums.begin(), nums.end()); nums.erase(unique(nums.begin(),nums.end()), nums.end()); return min((int)nums.size(), n); } 1. 중복값 없애주기. 2. N/2와 포켓몬 종류의 개수 중에서 최솟값 return 하기. 다른 사람 풀이 #include using namespace std; int solution(vector nums) { unordered_set s(nums.begin(), nums.end()); retur..
[프로그래머스]탐욕법 - 체육복 문제 풀이 #include #include #include using namespace std; int solution(int n, vector lost, vector reserve) { int answer = 0; vector students(n, 1); for(int i=0; i 1){answer++; continue;} if(i 1) {students[i+1]--;answer++; continue;} } else answer++; } return answer; } 반복문을 수정해주었다. 다른 사람 풀이 #include #include using namespace std; int student[35]; int solution(int n, vector lost, vector reserve) { int ..
[프로그래머스]완전탐색 - 모의고사 문제 풀이 #include #include #include //max_element using namespace std; vector solution(vector answers) { vector answer; vector sum(3,0); vector first = {1,2,3,4,5}; vector second = {2,1,2,3,2,4,2,5}; vector third = {3,3,1,1,2,2,4,4,5,5}; for(int i=0; i
[프로그래머스]정렬 - K번째수 문제 풀이 #include #include #include using namespace std; vector solution(vector array, vector commands) { vector answer; vector arr; for(int i=0; i
[프로그래머스] 소수만들기 문제 풀이 #include #include #include using namespace std; bool sosu(int num) { if (num < 2) return false; int a = (int) sqrt(num); for (int i = 2; i
[프로그래머스]신고 결과 받기 / istringstream 문제 풀이 #include #include #include #include //unique, find #include // istringstream using namespace std; vector solution(vector id_list, vector report, int k) { string name; string report_name; int idx = 0; vector user(id_list.size(),vector()); // 계정당 신고한 id vector report_count(id_list.size(),0); //신고당한 횟수 vector answer(id_list.size(),0); vector report_user; // 정지된 유저 id //중복값 제거 sort(report.begi..