프로그래머스 Day - 18

ᵁ-ᴷᴺᴼᵂᴺ·2024년 3월 8일
post-thumbnail

1. X 사이의 개수

문제 설명

문자열 myyString 이 주어졌을 때, 문자 "x"를 기준으로 나눈 문자열 각각의 길이를 순서대로 저장한 배열을 반환

입출력 예

myStringresult
"oxooxoxxox"[1, 2, 1, 0, 1, 0]
"xabcxdefxghi"[0, 3, 3, 3]

코드

function solution(myString) {
    const answer = [];
    let x = 0;

    for (let char of myString) {
        if (char === 'x') {
            answer.push(x);
            x = 0;
        } else {
            x++;
        }
    }

    answer.push(x);
    return answer;
}

풀이 설명

  • Array변수 answer과 길이를 저장할 변수 x를 선언한다.
  • myString의 전체를 돌면서 각 하나의 문자를 비교하여 "x"인지 확인한다.
  • "x"가 나오지 않으면 x변수에 1을 더해주고, 업다면 현재 x에 저장된 값을 answer에 push하고 변수 x를 초기화 한다.
  • 반복이 끝나고 난 후 미처 초기화되지 못한 x에 값이 있을 수도 있기 때문에 x를 push 해주고 return한다.

2. 문자열 잘라서 정렬하기

문제 설명

문자열 myString이 주어지고 "x"를 기준으로 문자를 잘라내 배열을 만든 후 사전순으로 정렬한 배열을 반환하시오.

입출력 예

myStringresult
"axbxcxdx"["a","b","c","d"]
"dxccxbbbxaaaa"["aaaa","bbb","cc","d"]

코드

function solution(myString) {
    return myString.split('x').map(v => v).filter(v => v !== "").sort();
}

풀이 설명

  • myString문자열을 문자 "x"를 기준으로 잘라준다.
  • map()메서드를 사용하여 모든 요소를 돌면서 filter()를 사용하여 빈 문자열이 아닌경우에만 배열에 추가한다.
  • 마지막으로 sort()를 사용하여 정렬해주면 된다. (sort()메서드는 유니코드순으로 정렬한다.)

3. 간단한 식 계산하기

문제 설명

문자열 binomial변수가 주어졌을 때, "a op b" 형태의 이항식이고 ab는 음이 아닌 정수, op는 '+', '-', '*' 중 하나이고, 주어진 식을 계산후 반환하시오.

입출력 예

binomialresult
"43 + 12"55
"0 - 7777"-7777
"40000 * 40000"1600000000

코드

function solution(binomial) {
    let c = [];
    c = binomial.split(" ");
    return c[1] == "+" ? Number(c[0])+Number(c[2]) : c[1] == "-" ? c[0]-c[2] : c[0]*c[2]
}

풀이 설명

  • 문자열 binomial은 띄어쓰기 기준으로 숫자와 연산기호가 나눠져 있다.
  • 따라서 배열 c를 선언하고 binomialsplit()을 사용하여 나눠 c에 저장한다.
  • 3항 연산자를 2중으로 사용하여 반환한다.

4. 문자열 바꿔서 찾기

문제 설명

문자 A와 B로 이루어진 문자열 myStringpat이 주어지고 myString"A""B""B""A"로 바꾼 후 pat문자열과 비교하여 부분문자열이 포함 되어 있을 때 1을 출력하고, 없으면 0을 출력하시오.

입출력 예

myStringpatresult
"ABBAA""AABB"1
"ABAB""ABAB"0

코드

function solution(myString, pat) {
    let contain = myString.split("");
    let str = [];
    for (let x of contain){
        x == "A" ? str.push("B") : str.push("A");
    }
    return str.join("").includes(pat) ? 1 : 0
}

풀이 설명

  • 변수 containstr을 선언하고, myString을 잘라 contain에 저장한다.
  • 3항 연산자를 사용하여 contain에 있는 요소를 모두 돌면서 "A""B""B""A"str에 넣어준다.
  • str을 이어붙이고 includes()메서드를 사용하여 부분 문자열 pat이 있는지 3항 연산자로 확인 후 10을 출력한다.

5. rny_string

문제 설명

문자열 rny_string이 주어졌을 때, 문자열 안에 mrn으로 바꾼 문자열을 반환하시오.

입출력 예

rny_stringresult
"masterpiece""rnasterpiece"
"programmers""prograrnrners"
"jerry""jerry"
"burn""burn"

코드

function solution(rny_string) {
    return rny_string.replaceAll("m", "rn")
}

풀이 설명

  • replaceAll()을 사용하여 문자열 내 특정 문자나 부분 문자열을 모두 다른 것으로 치환할 수 있다.
  • replaceAll(바꿀 문자, 대신 넣을 문자)처럼 파라미터를 설정해주면 된다.
profile
ΔIM ΩΠ ҒULLSTΔCҜ

0개의 댓글