한 걸음씩
[프로그래머스][JS] 그림 확대 본문
https://school.programmers.co.kr/learn/courses/30/lessons/181836
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이 과정
function solution(picture, k) {
var answer = [];
for (let i = 0; i < picture.length; i++){
let stretch = []
for (let j = 0; j < picture[i].length; j++){
stretch.push(picture[i][j].repeat(k))
}
for (let j = 0; j < k; j++){
answer.push(stretch.join(''))
}
}
return answer;
}
picture 배열의 요소를 k만큼 늘리고 요소의 요소를 k만큼 늘리면 되는 문제이다.
picture 배열 길이만큼 반복을 하면서 배열의 요소길이만큼 반복을 해서 stretch 빈 배열에 k만큼 늘려서 push를 해주고
더 이상의 반복문 없이 answer 배열에 stretch배열을 문자열로 바꾼 후 push 하면 아래 코드와 같은 결과가 나온다.
그럼 picture 배열의 요소의 요소는 k만큼 늘어난 상태가 되는데 여기서 끝이 아니라 picture 배열의 요소를 k만큼 늘려줘야 한다.
그래서 한 번 더 k만큼 반복문을 돌려서 배열을 늘려줘야 하는데 앞서 answer 배열에 stretch배열을 문자열로 바꾼 후 push하는 부분을 반복문안에 넣어서 진행하면 문제에서 원하는 결과가 나오게 된다.
// 배열의 요소의 요소는 k만큼 늘리기
function solution(picture, k) {
var answer = [];
for (let i = 0; i < picture.length; i++){
let stretch = []
for (let j = 0; j < picture[i].length; j++){
stretch.push(picture[i][j].repeat(k))
}
answer.push(stretch.join(''))
// console.log(stretch)
}
return answer;
}
// 다음과 같은 결과 출력 ; 여기서 멈추는 것이 아니라 각 배열을 k만큼 추가해야함
// [ 'xxx', '...', 'xxx' ]
// [ '...', 'xxx', '...' ]
// [ 'xxx', '...', 'xxx' ]
위의 코드로만 진행하면 배열 요소의 요소가 k만큼 늘어난다.
문제에서 요구한건 이것이 아니라 배열 요소의 요소가 k만큼 늘어나는 것뿐만 아니라 배열 요소까지 k만큼 추가해야 한다.
때문에 for문을 k만큼 반복해서 push를 해줘야 한다.
리뷰
마지막에 배열의 요소를 k만큼 어떻게 늘려야 할지 엄청 고민했는데 그냥 머리가 좀 안 돌아가서 오래 걸린 것 같다.
'Programmers' 카테고리의 다른 글
[프로그래머스][JS] JadenCase 문자열 만들기 ✅ (0) | 2023.06.29 |
---|---|
[프로그래머스][JS] 최댓값과 최솟값 (0) | 2023.06.26 |
[프로그래머스][JS] 수열과 구간 쿼리 2 (0) | 2023.06.26 |
[프로그래머스][JS] 문자열 밀기 (0) | 2023.06.25 |
[프로그래머스][JS] 종이 자르기 (0) | 2023.06.25 |