일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 프로그래머스
- c++
- 수학
- 개인 프로젝트 - 런앤건
- C/C++
- 7월
- 2022년
- 4월
- 골드메탈
- 10월
- todolist
- 자료 구조
- 개인 프로젝트
- 1월
- 2025년
- 백준
- 게임 엔진 공부
- 5월
- 기초
- 다이나믹 프로그래밍
- 3월
- 유니티 심화과정
- 2023년
- 2024년
- 입문
- 코딩 기초 트레이닝
- 단계별로 풀어보기
- 유니티
- 2월
- 코딩 테스트
- Today
- Total
기록 보관소
[프로그래머스] 코딩 기초 트레이닝 PART 10(C++) 본문
프로그래머스 코딩 테스트 연습 : 코딩 기초 트레이닝(C++)
https://school.programmers.co.kr/learn/challenges?order=recent&languages=cpp&partIds=44139&page=3
코딩테스트 연습 | 프로그래머스 스쿨
개발자 취업의 필수 관문 코딩테스트를 철저하게 연습하고 대비할 수 있는 문제를 총망라! 프로그래머스에서 선발한 문제로 유형을 파악하고 실력을 업그레이드해 보세요!
school.programmers.co.kr
프로그래머스 코딩 기초 트레이닝 : 문자열의 앞의 n글자
https://school.programmers.co.kr/learn/courses/30/lessons/181907
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
문자열 my_string과 정수 n이 매개변수로 주어질 때, my_string의 앞의 n글자로 이루어진 문자열을 return 하는 solution 함수를 작성해 주세요.
제한사항
- my_string은 숫자와 알파벳으로 이루어져 있습니다.
- 1 ≤ my_string의 길이 ≤ 1,000
- 1 ≤ n ≤ my_string의 길이
입출력 예
코드
#include <string>
#include <vector>
using namespace std;
string solution(string my_string, int n) {
return my_string.substr(0, n);
}
결과
프로그래머스 코딩 기초 트레이닝 : 접두사인지 확인하기
https://school.programmers.co.kr/learn/courses/30/lessons/181906
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
어떤 문자열에 대해서 접두사는 특정 인덱스까지의 문자열을 의미합니다.
예를 들어, "banana"의 모든 접두사는 "b", "ba", "ban", "bana", "banan", "banana"입니다.
제한사항
- 1 ≤ my_string의 길이 ≤ 100
- 1 ≤ is_prefix의 길이 ≤ 100
- my_string과 is_prefix는 영소문자로만 이루어져 있습니다.
입출력 예

코드
#include <string>
#include <vector>
using namespace std;
int solution(string my_string, string is_prefix) {
return (my_string.substr(0, is_prefix.size()) == is_prefix);
}
결과
프로그래머스 코딩 기초 트레이닝 : 문자열 뒤집기
https://school.programmers.co.kr/learn/courses/30/lessons/181905
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
문자열 my_string과 정수 s, e가 매개변수로 주어질 때, my_string에서 인덱스 s부터 인덱스 e까지를 뒤집은 문자열을 return 하는 solution 함수를 작성해 주세요.
제한사항
- my_string은 숫자와 알파벳으로만 이루어져 있습니다.
- 1 ≤ my_string의 길이 ≤ 1,000
- 0 ≤ s ≤ e < my_string의 길이
입출력 예

코드
#include <string>
#include <vector>
using namespace std;
string solution(string my_string, int s, int e) {
string answer = "";
if (s > 0)
answer += my_string.substr(0, s);
for (int i = e; i >= s; i--)
answer += my_string[i];
if (e < my_string.size() - 1)
answer += my_string.substr(e + 1);
return answer;
}
// 다른 사람의 풀이 1 : swap 함수를 이용한 방법
#include <string>
#include <vector>
using namespace std;
string solution(string my_string, int s, int e) {
string answer = "";
for (int i = 0; i <= (e - s) / 2; i++)
swap(my_string[s + i], my_string[e - i]);
return my_string;
}
// 다른 사람의 풀이 2 : reverse 함수를 이용한 방법
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
string solution(string my_string, int s, int e) {
reverse(my_string.begin()+s,my_string.begin()+e+1);
return my_string;
}
결과

프로그래머스 코딩 기초 트레이닝 : 세로 읽기
https://school.programmers.co.kr/learn/courses/30/lessons/181904
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
문자열 my_string과 두 정수 m, c가 주어집니다.
my_string을 한 줄에 m 글자씩 가로로 적었을 때 왼쪽부터 세로로 c번째 열에 적힌 글자들을 문자열로 return 하는 solution 함수를 작성해 주세요.
제한사항
- my_string은 영소문자로 이루어져 있습니다.
- 1 ≤ m ≤ my_string의 길이 ≤ 1,000
- m은 my_string 길이의 약수로만 주어집니다.
- 1 ≤ c ≤ m
입출력 예

코드
#include <string>
#include <vector>
using namespace std;
string solution(string my_string, int m, int c) {
string answer = "";
for (int i = 0; i < my_string.size(); i += m)
answer += my_string.substr(i, i + m)[c - 1];
return answer;
}
// 다른 사람의 풀이 : for문으로만 해결한 방법
#include <string>
#include <vector>
using namespace std;
string solution(string my_string, int m, int c) {
string answer = "";
for(int i=c-1; i<my_string.length(); i+=m)
answer += my_string[i];
return answer;
}
결과

프로그래머스 코딩 기초 트레이닝 : qr code
https://school.programmers.co.kr/learn/courses/30/lessons/181903
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
두 정수 q, r과 문자열 code가 주어질 때, code의 각 인덱스를 q로 나누었을 때 나머지가 r인 위치의 문자를 앞에서부터 순서대로 이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요.
제한사항
- 0 ≤ r < q ≤ 20
- r < code의 길이 ≤ 1,000
- code는 영소문자로만 이루어져 있습니다.
입출력 예

코드
#include <string>
#include <vector>
using namespace std;
string solution(int q, int r, string code) {
string answer = "";
for (int i = 0; i < code.size(); i++)
if (i % q == r)
answer += code[i];
return answer;
}
// 다른 사람의 풀이 : for문만으로 해결한 방법
#include <string>
#include <vector>
using namespace std;
string solution(int q, int r, string code) {
string answer = "";
for(int t= r; t < code.size(); t += q)
{
answer += code[t];
}
return answer;
}
결과

여담
이번 문제들도 크게 어렵지 않았던만큼, 내가 풀이한 것보다 더 간단하게 풀이할 수 있는 방법들이 좀 있었다.
중간에 reverse와 swap함수를 사용해서 해결하는 것은 지난번 문제 풀이에서 나왔던 함수들인데 이번에 활용하지 않았던게 아쉽다.
'코딩 테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 코딩 기초 트레이닝 PART 12(C++) (0) | 2024.01.19 |
---|---|
[프로그래머스] 코딩 기초 트레이닝 PART 11(C++) (0) | 2024.01.18 |
[프로그래머스] 코딩 기초 트레이닝 PART 9(C++) (0) | 2024.01.16 |
[프로그래머스] 코딩 기초 트레이닝 PART 8(C++) (2) | 2024.01.15 |
[프로그래머스] 코딩 기초 트레이닝 PART 7(C++) (2) | 2024.01.11 |