2023년 1월 1일
08:00 AM
Buffering ...

최근 글 👑

JS 프로그래머스 #26 - 부분 문자열 이어 붙여 문자열 만들기, 문자열 붙여서 출력하기, 배열의 원소만큼 추가하기

2023. 9. 6. 17:32ㆍ프로그래머스 JS 코딩테스트
반응형

79. 부분 문자열 이어 붙여 문자열 만들기

 

문제 설명

  • 길이가 같은 문자열 배열 my_strings와 이차원 정수 배열 parts가 매개변수로 주어집니다. parts[i]는 [s, e] 형태로, my_string[i]의 인덱스 s부터 인덱스 e까지의 부분 문자열을 의미합니다. 각 my_strings의 원소의 parts에 해당하는 부분 문자열을 순서대로 이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요.

제한사항

  • 1 ≤ my_strings의 길이 = parts의 길이 ≤ 100
  • 1 ≤ my_strings의 원소의 길이 ≤ 100
  • parts[i]를 [s, e]라 할 때, 다음을 만족합니다.
  • 0 ≤ s ≤ e < my_strings[i]의 길이

입출력 예시

  • 예제 1번의 입력을 보기 좋게 표로 나타내면 다음과 같습니다.

  • 각 부분 문자열을 순서대로 이어 붙인 문자열은 "programmers"입니다. 따라서 "programmers"를 return 합니다.

풀이

const solution = (my_strings, parts) => {
    let result = "";
    for(let i = 0; i < my_strings.length; i++){
        let index = parts[i];
        let part = my_strings[i].substring(index[0], index[1] + 1);
        result += part;
    }
    return result;
    
} 

// 합친 문자열을 저장할 result 선언
// for 반복문, i는 0부터 my_string의 길이까지 => 제한 사항 1에 따라 my_string와 parts의 길이는 같다.
// parts[i]를 통해 이중 배열값을 변수 index에 저장 index에 저장되는 값은 [s,e]
// my_string[i]를 통해 i번째 문자열을 substring 메서드를 통해 시작 인덱스부터 끝 인덱스 + 1
// +1은 substring 메서드는 마지막 요소는 제외하기 때문.
// part문자열을 result에 붙여준다.

 

80. 문자열 붙여서 출력하기

 

문제 설명 

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

제한사항 

  • 1 ≤ str1, str2의 길이 ≤ 10

입출력 예시 

 

풀이

const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

let input = [];

rl.on('line', function (line) {
    input = line.split(' ');
}).on('close', function () {
    
    let result = "";
    for(let i = 0; i < input.length; i++){
        result += input[i];
    }
    console.log(result);
    
});

// Node.js 환경에서 사용자에게 입력을 받아 결과를 합치는 프로그램
// readline 모듈 : 터미널에서 사용자에게 입력 받을 수 있게 환경 설정
// const rl = readline.createInterface({
//  	 input: process.stdin,
//   	 output: process.stdout
//	});
// readline.createInterface() 메서드는 readline 모듈의 인터페이스 생성
// input: process.stdin, -> 입력을 받을 대상 정의, 표준 입력을 나타내며 터미널에 입력한 내용을 읽음
// output: process.stdout -> readline 인터페이스가 출력을 터미널로 보낼 대상을 정의, 터미널에 출력할 때 사용
// 사용자 입력은 rl.on line 이벤트 핸들러를 통해 처리
// 사용자가 한줄 입력하면 해당 줄 내용이 line 매개변수로 전달
// 입력된 문자열을 공백 기준으로 나눈 후 input 에 저장
// rl.on close 이벤트 핸들러는 사용자 입력 종료될 때 호출
// input에 저장된 단어들을 for 반복문을 통해 result에 저장 후 콘솔에 출력

 

81. 배열의 원소만큼 추가하기

 

문제 설명

  • 아무 원소도 들어있지 않은 빈 배열 X가 있습니다. 양의 정수 배열 arr가 매개변수로 주어질 때, arr의 앞에서부터 차례대로 원소를 보면서 원소가 a라면 X의 맨 뒤에 a를 a번 추가하는 일을 반복한 뒤의 배열 X를 return 하는 solution 함수를 작성해 주세요.

제한사항

  • 1 ≤ arr의 길이 ≤ 100 
  • 1 ≤ arr의 원소 ≤ 100

입출력 예시

 

 

  • 예제 1번에 대해서 a와 X를 나타내보면 다음 표와 같습니다.

 

  • 따라서 [5, 5, 5, 5, 5, 1, 4, 4, 4, 4]를 return 합니다.
  • 예제 2번에 대해서 a와 X를 나타내보면 다음 표와 같습니다.

 

  • 따라서 [6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6]를 return 합니다.
  • 예제 2번에 대해서 a와 X를 나타내보면 다음 표와 같습니다.

 

  • 따라서 [1]을 return 합니다.

풀이

const solution = arr => {
    let result = [];
    for(let i = 0; i < arr.length; i++){
        for(let j = 0; j < arr[i]; j++){
            result.push(arr[i]);
        }
    }
    return result;
}

// 빈 배열 result 선언
// i는 arr의 길이만큼 반복 -> arr[i] 모든 값을 확인
// j는 arr[i]의 값만큼 반복
// result에 arr[i]의 값을 arr[i]번 반복해서 추가

 

  • 정답률 높은 순부터 풀이
  • 매일 3문항 풀이
반응형