본문 바로가기

코딩테스트

JS 문자열 문제

✏️ 문자열 반복 https://www.acmicpc.net/problem/2675

반복함수 repeat(횟수)를 기억하자!

 

2675번: 문자열 반복

문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다

www.acmicpc.net

let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split('\n');

let testCase = Number(input[0]);

for(let i=1; i<=testCase; i++){
    let [r, s] = input[i].split(" ");
    let result = '';
    
    for (let j=0; j<s.length; j++){
        result += s[j].repeat(r);
    }
    console.log(result);
}

 

✏️ 그룹 단어 체커 https://www.acmicpc.net/problem/1316

 

1316번: 그룹 단어 체커

그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때

www.acmicpc.net

/*
1. 요소를 set에 가지고 있는지 확인한다.
2. 요소가 이미 있는 경우 바로 앞 요소랑 일치하는지 확인, 아니면 더이상 확인할 필요 x
3. 없는 경우 set에 담는다.
4. 확인이 정상적으로 끝나면 cnt 해준다.
*/

let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split('\n');
let testCase = Number(input[0]);
let cnt = 0;

function chk(data) {
  let set = new Set();
  for(let j=0; j<data.length; j++){
        if(set.has(data[j])){ // 1번
           if(data[j] != data[j-1]){ // 2번
               return false;
           }
        } else {
            set.add(data[j]); // 3번
        }
    }
  return true;
}

for(let i=1; i<=testCase; i++){
    if(chk(input[i])) cnt++ // 4번
    
}

console.log(cnt);

 

'코딩테스트' 카테고리의 다른 글

코딩테스트를 위한 정렬  (0) 2023.05.25
코딩테스트를 위한 자료구조  (0) 2023.05.24
JS 배열 문제  (0) 2023.05.23
JS 반복문 문제  (0) 2023.05.23
JS 조건문 문제  (0) 2023.05.23