본문 바로가기

알고리즘/프로그래머스50

[C++] 문자열 밀기 문자열 밀기 문자열 A와 B가 매개변수로 주어질 때, A를 밀어서 B가 될 수 있다면 밀어야 하는 최소 횟수를 return하고 밀어서 B가 될 수 없으면 -1을 return 예를 들어 A가 "hello" B가 "ohell" 이면 hello를 우측으로 1번 민다고 생각하면 됩니다. A를 한칸씩 우측으로 밀어보면서 B와 비교하여 풀었는데, 다른사람의 풀이를 보고 감탄을 하여 바로 가져왔습니다. 나의 풀이 #include #include #include using namespace std; int solution(string A, string B) { int answer = 0, b = A.size(); string a = ""; if(A == B) return 0; else{ for(int i = 0; i .. 2023. 5. 22.
[C++] (공백분리) 컨트롤 제트 컨트롤 제트 숫자와 "Z"가 공백으로 구분되어 담긴 문자열이 주어집니다. 문자열에 있는 숫자를 차례대로 더하려고 합니다. 이 때 "Z"가 나오면 바로 전에 더했던 숫자를 뺀다는 뜻입니다. 숫자와 "Z"로 이루어진 문자열 s가 주어질 때 답을 return #include #include #include using namespace std; int solution(string s) { int answer = 0; int tmp; stringstream ss(s); vector words; string word; while (getline(ss, word, ' ')) { words.push_back(word); } for (int i = 0; i < words.size(); i++) { if (words[i].. 2023. 5. 19.
[C++] 소인수분해, 7의 개수 소인수분해 자연수 n이 매개변수로 주어질 때 n의 소인수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요. #include #include #include using namespace std; // n이 소수인지 판별 bool isPrime(int n) { if (n < 2) return false; for (int i = 2; i * i 2023. 5. 18.
[C++] 중복된 문자 제거, 가장 큰 수 찾기 중복된 문자 제거 문자열이 매개변수로 주어질 때, 문자열에서 중복된 문자를 제거하고 하나의 문자만 남긴 문자열 return #include #include #include using namespace std; string solution(string my_string) { string answer = ""; vector str; for(int i=0; i < my_string.size(); i++){ if(find(str.begin(), str.end(), string(1, my_string[i])) == str.end()){ answer += string(1, my_string[i]); } str.push_back(string(1, my_string[i])); } return answer; } 가장 큰.. 2023. 5. 17.
[C++] (대소문자 범위) 문자열안에 문자열, 숨어있는 숫자의 덧셈 (1) 문자열에 문자열 문자열 str, str2가 매개변수로 주어지면 str2가 str1에 포함되는지 판별하는 문제입니다. string의 find() 함수를 이용합니다. str2 가 str1 안에 포함된다면 string::npos을 반환합니다. #include #include using namespace std; int solution(string str1, string str2) { if (str1.find(str2) != string::npos){ return 1; } return 2; } 숨어있는 숫자의 덧셈 (1) 문자열 my_string이 매개변수로 주어질 때, my_string안의 자연수들의 합을 반환하는 문제입니다. 문자의 아스키코드 값으로 접근할 수 있는 문제입니다. #include #includ.. 2023. 5. 16.