[프로그래머스] 코딩 기초 트레이닝 PART 3(C++)
프로그래머스 코딩 테스트 연습 : 코딩 기초 트레이닝(C++)
https://school.programmers.co.kr/learn/challenges?order=recent&languages=cpp&page=1&partIds=44139
코딩테스트 연습 | 프로그래머스 스쿨
개발자 취업의 필수 관문 코딩테스트를 철저하게 연습하고 대비할 수 있는 문제를 총망라! 프로그래머스에서 선발한 문제로 유형을 파악하고 실력을 업그레이드해 보세요!
school.programmers.co.kr
프로그래머스 코딩 기초 트레이닝 : 문자열 섞기
https://school.programmers.co.kr/learn/courses/30/lessons/181942
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
길이가 같은 두 문자열 str1과 str2가 주어집니다.
두 문자열의 각 문자가 앞에서부터 서로 번갈아가면서 한 번씩 등장하는 문자열을 만들어 return 하는 solution 함수를 완성해 주세요.
제한 사항
- 1 ≤ str1의 길이 = str2의 길이 ≤ 10
- str1과 str2는 알파벳 소문자로 이루어진 문자열입니다.
입출력 예
코드
#include <string>
#include <vector>
using namespace std;
string solution(string str1, string str2) {
string answer = "";
for (int i = 0; i < str1.size(); i++) {
answer += str1[i];
answer += str2[i];
}
return answer;
}
// 다른 사람의 풀이 : vector를 이용하는 방법
#include <string>
#include <vector>
using namespace std;
string solution(string str1, string str2) {
string answer = "";
for(int i=0; i<str1.length(); i++)
{
answer.push_back(str1[i]);
answer.push_back(str2[i]);
}
return answer;
}
결과
프로그래머스 코딩 기초 트레이닝 : 문자 리스트를 문자열로 변환하기
https://school.programmers.co.kr/learn/courses/30/lessons/181941
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
문자들이 담겨있는 배열 arr가 주어집니다.
arr의 원소들을 순서대로 이어 붙인 문자열을 return 하는 solution함수를 작성해 주세요.
제한 사항
- 1 ≤ arr의 길이 ≤ 200
- arr의 원소는 전부 알파벳 소문자로 이루어진 길이가 1인 문자열입니다.
입출력 예
코드
#include <string>
#include <vector>
using namespace std;
string solution(vector<string> arr) {
string answer = "";
for (int i = 0; i < arr.size(); i++)
answer += arr[i];
return answer;
}
// 다른 사람의 풀이 : accumulate 함수를 사용하는 방법
#include <bits/stdc++.h>
using namespace std;
string solution(vector<string> arr) {
return accumulate(arr.begin(), arr.end(), string(""));
}
결과
프로그래머스 코딩 기초 트레이닝 : 문자열 곱하기
https://school.programmers.co.kr/learn/courses/30/lessons/181940
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
문자열 my_string과 정수 k가 주어질 때, my_string을 k번 반복한 문자열을 return 하는 solution 함수를 작성해 주세요.
제한 사항
- 1 ≤ my_string의 길이 ≤ 100
- my_string은 영소문자로만 이루어져 있습니다.
- 1 ≤ k ≤ 100
입출력 예
코드
#include <string>
#include <vector>
using namespace std;
string solution(string my_string, int k) {
string answer = "";
for (int i = 0; i < k; i ++)
answer += my_string;
return answer;
}
// 다른 사람의 풀이 : append 함수를 사용하는 방법
#include <string>
#include <vector>
using namespace std;
string solution(string my_string, int k) {
string answer = "";
while (k--) answer.append(my_string);
return answer;
}
결과
프로그래머스 코딩 기초 트레이닝 : 더 크게 합치기
https://school.programmers.co.kr/learn/courses/30/lessons/181939
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
연산 ⊕는 두 정수에 대한 연산으로 두 정수를 붙여서 쓴 값을 반환합니다. 예를 들면 다음과 같습니다.
- 12 ⊕ 3 = 123
- 3 ⊕ 12 = 312
양의 정수 a와 b가 주어졌을 때, a ⊕ b와 b ⊕ a 중 더 큰 값을 return 하는 solution 함수를 완성해 주세요.
단, a ⊕ b와 b ⊕ a가 같다면 a ⊕ b를 return 합니다.
제한 사항
- 1 ≤ a, b < 10,000
입출력 예
코드
#include <string>
#include <vector>
using namespace std;
int solution(int a, int b) {
int answer = 0;
string ab = "", ba = "";
ab = to_string(a) + to_string(b);
ba = to_string(b) + to_string(a);
if (stoi(ab) >= stoi(ba))
answer = stoi(ab);
else
answer = stoi(ba);
return answer;
}
// 다른 사람의 풀이 : max 함수 사용하는 방법
#include <string>
#include <vector>
using namespace std;
int solution(int a, int b) {
return max(stoi(to_string(a)+to_string(b)),stoi(to_string(b)+to_string(a)));
}
결과
프로그래머스 코딩 기초 트레이닝 : 두 수의 연산값 비교하기
https://school.programmers.co.kr/learn/courses/30/lessons/181938
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
연산 ⊕는 두 정수에 대한 연산으로 두 정수를 붙여서 쓴 값을 반환합니다. 예를 들면 다음과 같습니다.
- 12 ⊕ 3 = 123
- 3 ⊕ 12 = 312
양의 정수 a와 b가 주어졌을 때, a ⊕ b와 2 * a * b 중 더 큰 값을 return하는 solution 함수를 완성해 주세요.
단, a ⊕ b와 2 * a * b가 같으면 a ⊕ b를 return 합니다.
제한 사항
- 1 ≤ a, b < 10,000
입출력 예
코드
#include <string>
#include <vector>
using namespace std;
int solution(int a, int b) {
return max(stoi(to_string(a) + to_string(b)),2*a*b);
}
결과
여담
앞으로 다른 사람의 풀이를 기본적으로 문제를 풀어 보는대로 확인해서, 문제를 더 효율적으로 해결한 코드나 문제가 의도한 느낌의 코드(일종의 모범 답안 느낌?)가 있다면 함께 게시할 생각이다.
나잊고 있었던 C, C++의 함수를 되새길 수 있을 것 같고, 훨씬 짧고 직관적인 코드를 작성하는데에도 도움이 될 것 같다.