본문 바로가기

분류 전체보기135

[C++] 옹알이 (1) 옹알이 (1) 머쓱이는 태어난 지 6개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인) 발음밖에 하지 못합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요. 입출력 예 ["aya", "yee", "u", "maa", "wyeoo"] 1 ["ayaye", "uuuma", "ye", "yemawoo", "ayaa"] 3 입력받는 배열 안 문자열에서 주어진 4개의 발음을 한번씩만 사용해서 만들 수 있다는 것은, 문자열에 "aya", "ye", "woo", "ma" 단어를 제외한 다른 글자가 들어갈 수 없습.. 2023. 5. 30.
[C++] 평행 평행 점 네 개의 좌표를 담은 이차원 배열 dots가 다음과 같이 매개변수로 주어집니다. [[x1, y1], [x2, y2], [x3, y3], [x4, y4]] 주어진 네 개의 점을 두 개씩 이었을 때, 두 직선이 평행이 되는 경우가 있으면 1을 없으면 0을 return 하도록 solution 함수를 완성해보세요. 두 직선이 겹치는 경우(일치하는 경우)에도 1을 return 해주세요. 임의의 두 점을 이은 직선이 x축 또는 y축과 평행한 경우는 주어지지 않습니다. 주어진 두 선분이 평행하려면 기울기가 같고, y절편이 달라야 합니다. 이때 추가조건으로 두직선이 겹치는 경우에도 1을 반환하기 때문에 y절편은 고려하지 않습니다. 따라서 4개점 중 각각 두 점씩 쌍을 지어 두 선분을 만들고, 그 두 선분의 기.. 2023. 5. 25.
[C++] 연속된 수의 합 연속된 수의 합 연속된 세 개의 정수를 더해 12가 되는 경우는 3, 4, 5입니다. 두 정수 num과 total이 주어집니다. 연속된 수 num개를 더한 값이 total이 될 때, 정수 배열을 오름차순으로 담아 return하도록 solution함수를 완성해보세요. total + (total - 1) + (total - 2) + ... + (total - num) 이렇게 num개 만큼 더한 수가 처음 total 값과 같은 경우를 생각합니다. total 값을 1씩 빼면서 반복해주면 됩니다. #include #include using namespace std; vector solution(int num, int total) { vector answer; int sum, total_tmp = total; wh.. 2023. 5. 24.
[C++] 치킨 쿠폰 치킨 쿠폰 프로그래머스 치킨은 치킨을 시켜먹으면 한 마리당 쿠폰을 한 장 발급합니다. 쿠폰을 열 장 모으면 치킨을 한 마리 서비스로 받을 수 있고, 서비스 치킨에도 쿠폰이 발급됩니다. 시켜먹은 치킨의 수 chicken이 매개변수로 주어질 때 받을 수 있는 최대 서비스 치킨의 수를 return하도록 solution 함수를 완성해주세요. 100마리를 주문하면 쿠폰이 100장 발급되므로 서비스 치킨 10마리를 주문할 수 있습니다. 10마리를 주문하면 쿠폰이 10장 발급되므로 서비스 치킨 1마리를 주문할 수 있습니다. 결국 100마리를 주문하면 총 100 + 10 + 1 마리를 주문하기 때문에 쿠폰으로 10마리가 되는 경우도 고려해야 합니다. #include #include using namespace std;.. 2023. 5. 23.
[C++] 다음에 올 숫자 다음에 올 숫자 등차수열 혹은 등비수열 common이 매개변수로 주어질 때, 마지막 원소 다음으로 올 숫자를 return 하도록 solution 함수를 완성해보세요. 원소의 값이 음수가 될 수 있기 때문에, 등차수열인 경우와 등비수열인 경우에 예외조건인 경우를 고려하였습니다. 1. 배열이 등차수열인 경우 2. 등비수열일 경우에 2-1. 공비가 양수인 경우 2-2. 공비가 음수인 경우 3. 원소가 모두 0인 경우 이렇게 조건을 나누어 원소 3개를 비교하였습니다. #include #include using namespace std; int solution(vector common) { int answer = 0; if (common[1] - common[0] != common[2] - common[1]){ .. 2023. 5. 23.
[C++] 숫자 문자열과 영단어 2021 카카오 채용연계형 인턴십 코딩테스트 1번 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다. 1478 → "one4seveneight" 234567 → "23four5six7" 10203 → "1zerotwozero3" 입력받은 문자열 s와 출력 답 "one4seveneight" 1478 "23four5six7" 234567 "2three45sixseven" 234567 "123" 123 이 문제는 입력받은 문자열s 에서 zero~nine 에 해당하는 문자를 숫자로 바꾸어 출력하는 문제입니다. 영어 문자열을 찾.. 2023. 5. 23.
[C++] 유한소수 판별하기 유한소수 판별하기 두 정수 a와 b가 매개변수로 주어질 때, a/b가 유한소수이면 1을, 무한소수라면 2를 return하도록 solution 함수를 완성해주세요. 분자와 분모의 최대공약수로 분모를 나눈 뒤, 그 분모가 2, 5 가 아닌 소수로 나눠지면 무한소수, 아니라면 유한소수입니다. #include #include #include using namespace std; // 소수 구하기 O(log n) bool isPrime2(int n) { for (int i = 2; i 2023. 5. 22.
[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.