1. 문자열의 앞의 n글자
목표 : 문자열의 앞에서부터 n글자 출력
//입력(my_string, n)
"ProgrammerS123", 11
//출력
"ProgrammerS"
function solution(my_string, n) {
return my_string.substring(0,n)
}
substring()을 사용하여 파라미터에 (0, n)로 전달하여 처음부터 n번째 문자까지 잘라 반환한다.
2. 접두사인지 확인하기
목표 : 조건에 맞게 잘라진 문자열 검사
//입력(my_string, is_prefix)
"banana", "ban"
//출력
1
function solution(my_string, is_prefix) {
let buffer = [];
for(var i = 0; i<my_string.length; i++) {
buffer.push(my_string.substring(0,i))
}
return buffer.includes(is_prefix) ? 1 : 0;
}
- 검사할때 쓰일
buffer를 Array형으로 선언하고, my_string의 길이만큼 반복하는 for문을 작성한다.
buffer에 0~i까지 자르는 substring()을 사용하여 push한다.
- 배열에서 요소가 있는지 검사하는
includes()를 사용하여 판별후에 1 or 0을 출력한다.
3. 문자열 뒤집기
목표 : 특정구간의 문자열 뒤집기
//입력(my_string, s, e)
"Progra21Sremm3", 6, 12
//출력
"ProgrammerS123"
function solution(my_string, s, e) {
let buffer1 = my_string.substring(s,e+1);
let buffer2 = buffer1.split("").reverse().join("");
return my_string.replace(buffer1, buffer2)
}
buffer1에 my_string을 s부터 e까지 자른 문자열을 저장한다.
buffer2에 buffer1을 뒤집은 결과를 저장한다.
my_stirng에 buffer1의 문자열을 찾아 buffer2에 저장된 문자열로 replace()를 사용해 바꾼다.
4. 세로 읽기
목표 : 정해진 크기의 표에 저장된 문자들을 특정 열만 지정해 출력
//입력(my_string, m, c)
"ihrhbakrfpndopljhygc", 4, 2
//출력
"happy"
function solution(my_string, m, c) {
let table = [m][c];
let res = "";
for(let i = c-1; i<my_string.length; i+=m){
res += my_string[i]
}
return res
}
table을 2차원 배열m*c의 크기인 변수와 반환할 문자열을 담을 res를 선언한다.
- 시작할 인덱스를
-1하여 시작하고, 증감식은 +m로 i를 증가시킨다.
res에 my_string[i]를 더한 후 res를 반환한다.
5. QR code
목표 : 문자열을 index를 나눠 붙인 후 출력
//입력(q, r, code)
3, 1, "qjnwezgrpirldywt"
//출력
"jerry"
function solution(q, r, code) {
let res = "";
for(let i = 0; i<code.length; i++){
if(i%q == r){
res += code[i]
}
}
return res
}
- 반환할
res를 변수로 선언하고, code의 길이만큼 반복하는 반복문을 작성한다.
i를 q로 나눈 나머지가 r과 같다면, res에 code[i]를 추가하여 반환한다.