기록 보관소

[프로그래머스] 코딩 기초 트레이닝 PART 2(C++) 본문

코딩 테스트/프로그래머스

[프로그래머스] 코딩 기초 트레이닝 PART 2(C++)

JongHoon 2024. 1. 3. 21:01

프로그래머스  코딩 테스트 연습 : 코딩 기초 트레이닝(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/181947

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


문제 설명

두 정수 ab가 주어질 때 다음과 같은 형태의 계산식을 출력하는 코드를 작성해 보세요.


제한 사항

  • 1 <= a, b <= 100

입출력 예

 


코드

#include <iostream>

using namespace std;

int main(void) {
    int a;
    int b;
    cin >> a >> b;
    cout << a << " + " << b << " = " << a + b << endl;
    return 0;
}

결과


프로그래머스 코딩 기초 트레이닝 : 문자열 붙여서 출력하기

https://school.programmers.co.kr/learn/courses/30/lessons/181946

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


문제 설명

두 개의 문자열 str1str2가 공백으로 구분되어 입력으로 주어집니다.
입출력 예와 같이 str1과 str2을 이어서 출력하는 코드를 작성해 보세요.


제한 사항

  • 1 <= str1, str2의 길이 <= 10

입출력 예


코드

#include <iostream>
#include <string>

using namespace std;

int main(void) {
    string str1, str2;
    cin >> str1 >> str2;
    cout << str1 << str2;
    return 0;
}

결과


프로그래머스 코딩 기초 트레이닝 : 문자열 돌리기

https://school.programmers.co.kr/learn/courses/30/lessons/181945

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


문제 설명

문자열 str이 주어집니다.
문자열을 시계방향으로 90도 돌려서 아래 입출력 예와 같이 출력하는 코드를 작성해 보세요.


제한 사항

  • 1 <= str의 길이 <= 10

입출력 예

 


코드

#include <iostream>
#include <string>

using namespace std;

int main(void) {
    string str;
    cin >> str;
    
    for (int i = 0; i < str.size(); i++)
        cout << str[i] << "\n";
    return 0;
}

결과


프로그래머스 코딩 기초 트레이닝 : 홀짝 구분하기

https://school.programmers.co.kr/learn/courses/30/lessons/181944

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


문제 설명

자연수 n이 입력으로 주어졌을 때 만약 n이 짝수이면 "n is even"을, 홀수이면 "n is odd"를 출력하는 코드를 작성해 보세요.


제한 사항

  • 1 <= n <= 1,000

입출력 예


코드

#include <iostream>

using namespace std;

int main(void) {
    int n;
    cin >> n;
    
    if (n % 2 == 0)
        cout << n << " is even";
    else
        cout << n << " is odd";
    
    return 0;
}

결과


프로그래머스 코딩 기초 트레이닝 : 문자열 겹쳐쓰기

https://school.programmers.co.kr/learn/courses/30/lessons/181943

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


문제 설명

문자열 my_stringoverwrite_string과 정수 s가 주어집니다.

문자열 my_string의 인덱스 s부터 overwrite_string의 길이만큼을 문자열 overwrite_string으로 바꾼 문자열을 return 하는 solution 함수를 작성해 주세요.


제한 사항

  • my_string과 overwrite_string은 숫자와 알파벳으로 이루어져 있습니다.
  • 1 <= overwrite_string의 길이 <= my_string의 길이 <= 1,000
  • 0 <= s <= my_string의 길이 - overwrite_string의 길이

입출력 예

입출력 예
입출력 예 설명


코드

#include <string>
#include <vector>

using namespace std;

string solution(string my_string, string overwrite_string, int s) {
    string answer = "";
    
    for (int i = 0; i < s; i++)
        answer += my_string[i];
    
    answer += overwrite_string;
    
    if (my_string.size() > overwrite_string.size() + s)
        for (int i = overwrite_string.size() + s; i < my_string.size(); i++)
            answer += my_string[i];
    
    return answer;
}
// 다른 사람의 풀이 1 : replace 함수 사용(문제가 의도한 풀이로 보임)

#include <string>
#include <vector>

using namespace std;

string solution(string my_string, string overwrite_string, int s) {
    string answer = "";
    answer = my_string.replace(s,overwrite_string.size(),overwrite_string);
    return answer;
}
// 다른 사람의 풀이 2 : 기존 문자열에 넣을 문자열을 덮어쓰는 방식.

#include <string>
#include <vector>

using namespace std;

string solution(string my_string, string overwrite_string, int s)
{
    for (auto i = 0; i < overwrite_string.size(); ++i)
    {
        my_string[i + s] = overwrite_string[i];
    }
    return my_string;
}

결과


여담

마지막 문제인 '문자열 겹쳐쓰기' 문제는 직접 했던 풀이가 맞긴 했지만, 좀 더 깔끔하고 쉽게 하는 풀이가 있을 것 같아서  추가했다.