알고리즘 문제 풀이/Programmers 썸네일형 리스트형 탑 - 2단계 (C++) 주식가격과 비슷한 문제입니다. 대신 이 문제는 역으로 왼쪽으로 가군요 ! #include #include using namespace std; vector solution(vector heights) { vector answer; for (int i = 0; i = -1; j--) { if (j == -1) { answer.push_back(0); } if (heights[j] > heights[i]) { answer.push_back(j + 1); break; } } } } return answer; } 더보기 주식가격 - 2단계 (C++) prices의 길이가 2 이상 100,000 이하라서 Bubble Sort 개념으로 접근하는게 좀 무서웠는데, 막상 돌려보니 잘 돌아가군요 ! 마지막 값은 무조건 0인 걸 감안하고 Brute Force를 돌렸습니다. #include #include #include using namespace std; vector solution(vector prices) { vector answer; int price; int cnt; for (int i = 0; i prices[i]) { answers.push_back(cn.. 더보기 서울에서 김서방 찾기 - 1단계 (C++) #include #include using namespace std; string solution(vector seoul) { string temp_answer = "김서방은 x에 있다"; string answer =""; int temp; for (int i = 0; i < seoul.size(); i++) { if (seoul[i] == "Kim") { temp = i; } } for (int i = 0; i < temp_answer.size(); i++) { if (temp_answer[i] == 'x') answer += to_string(temp); else answer += temp_answer[i]; } return answer; } 더보기 최대공약수와 최소공배수 - 1단계 (C++) #include #include #include using namespace std; vector solution(int n, int m) { vector answer(2); // 최소공배수 값, 최대공배수 값만 처리합니다. int temp; if (n > m){ temp = m; m = n; n = temp; } // 최대공약수 for (int a = 1; a = m; b--){ if (max % b == 0 && b % m == 0 && b % n ==0){ answer[1] = b; } } return answer; } 더보기 이상한 문자 만들기 - 1단계 (C++) C++에서 문자열 처리를 대소문자를 바꾸기 위해서 cctype을 썼습니다. 그 외 주의해야하는 부분은 코드에 주석으로 달아놓도록 하겠습니다. #include #include #include using namespace std; string solution(string s) { string answer =""; int cnt = 0; // 홀짝 비교용 카운트 입니다. for (int i = 0; i < s.size(); i++) { if (s[i] == ' '){ answer += ' '; cnt = 0; continue; } else if (cnt % 2 == 0) answer += toupper(s[i]); // 안의 변수를 대문자로 바꿔줍니다. else if (cnt % 2 == 1) answer +.. 더보기 정수 내림차순으로 배치하기 - 1단계 (C++) 118372 = 1*10^5 + 1*10^4 + 8*10^3 + 3*10^2 + 7*10^1 + 2*10^0 인것을 기억하면 풀 수 있는 문제입니다. #include #include #include #include using namespace std; long long solution(long long n) { long long answer = 0; vector v; while (n) { v.push_back(n % 10); n = n / 10; } sort(v.begin(), v.end()); for (int i = 0; i < v.size(); i++) answer += pow(10, i) * v[i]; return answer; } 더보기 예산 - 1단계 (C++) 이 문제에를 풀 때 조합으로 문제를 풀려했었는데, 그게 아니었습니다. 문제에서 원하는 답은 얼마나 많은 부서에 금액을 지원해 줄 수 있는지 즉, 부서의 최대 부서 수를 물어보는 거였지, 그 예산에 딱 맞춰서 예산을 줄 수 있는 부서를 물어보는 것이 아니었습니다. 물론, 문제에서 예산이 남으면 안될 것 같지만, 다시 한 번 말씀 드리자면 원하는 건 부서의 수지 예산이 아닙니다. 그러니 우리는 부서를 중심으로 생각할 필요가 있고 이를 코드로 나타냈습니다. #include #include #include #include #include // sort를 쓰기 위함 using namespace std; int solution(vector d, int budget) { int answer = 0; int cnt =.. 더보기 자릿수 더하기 - 1단계 (C++) #include using namespace std; int solution(int n) { int answer = 0; while (n) { answer += n % 10; n = n / 10; } cout 더보기 이전 1 2 3 4 다음