반응형
https://school.programmers.co.kr/learn/courses/30/lessons/181904
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
답
#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.size();i+=m){
answer+=my_string[i];
}
return answer;
}
문자열 answer을 만들어준다.
for문을 돌리는데
변수 i가 c-1부터 시작해서 my_string의 크기보다 작을때동안, i에 m을 더해준다.
answer에 my_string[i]를 넣어준다.
my_string
|
m
|
c
|
result
|
"ihrhbakrfpndopljhygc
|
4
|
2
|
"happy"
|
이러한 상황에서
1열
|
2열
|
3열
|
4열
|
i(0)
|
h(1)
|
r(2)
|
h(3)
|
b(4)
|
a(5)
|
k(6)
|
r(7)
|
f(8)
|
p(9)
|
n(10)
|
d(11)
|
o(12)
|
p(13)
|
l(14)
|
j(15)
|
h(16)
|
y(17)
|
g(18)
|
c(19)
|
위 표 처럼 정리되어 닶이 happy로 나온다.
( 옆에 괄호는 그 값들의 문자열에서의 위치이다.)
여기서 2열의 처음 글자 h의 위치에 m을 더하면
2열의 두번쨰 글자인 a의 위치라는 것을 알 수 있다.
이러한 규칙으로
c를 시작값으로 두고 m을 더해서 다음 값들을 알아내는 방법을 생각했다.
근대 for문을 만들데 시작을 c-1로 하였다.
내가 생각한 방법을 열이 1부터 시작하지 않고 0부터 시작한다고 생각했다.
(배열의 위치는 0부터 센다..)
그래서 c-1로 시작하였다.
끝
반응형
'c++ > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 수열과 구간 쿼리 4(c++) (0) | 2023.12.25 |
---|---|
[프로그래머스] 글자 지우기(c++) (0) | 2023.12.25 |
[프로그래머스] 배열 만들기 3(c++) (0) | 2023.12.25 |
[프로그래머스] 수열과 구간 쿼리 1(c++) (0) | 2023.12.25 |
[프로그래머스] 빈 배열에 추가, 삭제하기(c++) (0) | 2023.12.25 |