🔥 CodingTest/프로그래머스
[Lv.0] x 사이의 개수
김_수댕
2024. 4. 10. 10:52
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/181867
✅ 문제
문자열 myString이 주어집니다. myString을 문자 "x"를 기준으로 나눴을 때 나눠진 문자열 각각의 길이를 순서대로 저장한 배열을 return 하는 solution 함수를 완성해 주세요.
제한 사항
- 1 ≤ myString의 길이 ≤ 100,000
- myString은 알파벳 소문자로 이루어진 문자열입니다.
입출력 예
myString | result |
"oxooxoxxox" | [1, 2, 1, 0, 1, 0] |
"xabcxdefxghi" | [0, 3, 3, 3] |
🔎 풀이 방법
배열을 순회하다가 x를 만나면 그 이전의 값들을 반환해준다.
마지막에는 x를 만나지 않을 수도 있으므로 for문 외부에서 한 번 더 push 해준다.
💻 코드
function solution(myString) {
let answer = [];
let tempArr = [];
for(let i = 0; i < myString.length; i++) {
if(myString.slice('')[i] === "x"){
answer.push(tempArr.length);
tempArr = [];
} else {
tempArr.push(myString.slice('')[i]);
}
}
answer.push(tempArr.length);
return answer;
}
👀 추가 공부
chat gpt 코드 깔끔하게 정리해 달라고 부탁. for-of
function solution(myString) {
const answer = [];
let tempCount = 0;
for (let char of myString) {
if (char === "x") {
answer.push(tempCount);
tempCount = 0;
} else {
tempCount++;
}
}
answer.push(tempCount);
return answer;
}
map() 사용
function solution(myString) {
return myString.split('x').map(v => v.length);
}
반응형