저장을 습관화
프로그래머스 LV.0 그림 확대 본문
프로그래머스 LV.0 그림 확대
https://school.programmers.co.kr/learn/courses/30/lessons/181836
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1. 문제 명
그림 확대
2. 문제 설명
직사각형 형태의 그림 파일이 있고, 이 그림 파일은 1 × 1 크기의 정사각형 크기의 픽셀로 이루어져 있습니다. 이 그림 파일을 나타낸 문자열 배열 picture과 정수 k가 매개변수로 주어질 때, 이 그림 파일을 가로 세로로 k배 늘린 그림 파일을 나타내도록 문자열 배열을 return 하는 solution 함수를 작성해 주세요.
3. 제한 사항
- 1 ≤ picture의 길이 ≤ 20
- 1 ≤ picture의 원소의 길이 ≤ 20
- 모든 picture의 원소의 길이는 같습니다.
- picture의 원소는 '.'과 'x'로 이루어져 있습니다.
- 1 ≤ k ≤ 10
4. 예시
picture | k | result |
[".xx...xx.", "x..x.x..x", "x...x...x", ".x.....x.", "..x...x..", "...x.x...", "....x...."] | 2 | ["..xxxx......xxxx..", "..xxxx......xxxx..", "xx....xx..xx....xx", "xx....xx..xx....xx", "xx......xx......xx", "xx......xx......xx", "..xx..........xx..", "..xx..........xx..", "....xx......xx....", "....xx......xx....", "......xx..xx......", "......xx..xx......", "........xx........", "........xx........"] |
["x.x", ".x.", "x.x"] | 3 | ["xxx...xxx", "xxx...xxx", "xxx...xxx", "...xxx...", "...xxx...", "...xxx...", "xxx...xxx", "xxx...xxx", "xxx...xxx"] |
5. 기본 제공 코드
function solution(picture, k) {
var answer = [];
return answer;
}
6. 제출한 내 답
const solution = (picture, k) => {
return picture.reduce((acc, cur) => {
let tmp = cur
.split("")
.map((v) => {
return v.repeat(k);
})
.join("");
for (i = 0; i < k; i++) acc.push(tmp);
return acc;
}, []);
};
정확성 테스트
테스트 1 〉 통과 (0.26ms, 33.6MB)
테스트 2 〉 통과 (0.30ms, 33.5MB)
테스트 3 〉 통과 (0.11ms, 33.5MB)
테스트 4 〉 통과 (0.24ms, 33.5MB)
테스트 5 〉 통과 (0.17ms, 33.5MB)
테스트 6 〉 통과 (0.19ms, 33.5MB)
테스트 7 〉 통과 (0.21ms, 33.5MB)
테스트 8 〉 통과 (0.21ms, 33.8MB)
테스트 9 〉 통과 (0.31ms, 33.5MB)
테스트 10 〉 통과 (0.21ms, 33.4MB)
테스트 11 〉 통과 (0.14ms, 33.5MB)
테스트 12 〉 통과 (0.19ms, 33.4MB)
테스트 13 〉 통과 (0.32ms, 33.4MB)
테스트 14 〉 통과 (0.17ms, 33.4MB)
테스트 15 〉 통과 (0.13ms, 33.4MB)
테스트 16 〉 통과 (0.28ms, 33.6MB)
테스트 17 〉 통과 (0.31ms, 33.5MB)
테스트 18 〉 통과 (0.26ms, 33.7MB)
테스트 19 〉 통과 (0.22ms, 33.5MB)
테스트 20 〉 통과 (0.19ms, 33.4MB)
테스트 21 〉 통과 (0.38ms, 33.8MB)
테스트 22 〉 통과 (0.25ms, 33.8MB)
테스트 23 〉 통과 (0.11ms, 33.4MB)
테스트 24 〉 통과 (0.08ms, 33.4MB)
채점 결과
정확성: 100.0
합계: 100.0 / 100.0
6-2. VSC에 작성한 내용
const solution = (picture, k) => {
return picture.reduce((acc, cur) => {
let tmp = cur
.split("")
.map((v) => {
return v.repeat(k);
})
.join("");
for (i = 0; i < k; i++) acc.push(tmp);
return acc;
}, []);
};
// 테스트
console.log(
solution(
[
".xx...xx.",
"x..x.x..x",
"x...x...x",
".x.....x.",
"..x...x..",
"...x.x...",
"....x....",
],
2
)
);
// ..xxxx......xxxx..
// ..xxxx......xxxx..
// xx....xx..xx....xx
// xx....xx..xx....xx
// xx......xx......xx
// xx......xx......xx
// ..xx..........xx..
// ..xx..........xx..
// ....xx......xx....
// ....xx......xx....
// ......xx..xx......
// ......xx..xx......
// ........xx........
// ........xx........
console.log(solution(["x.x", ".x.", "x.x"], 3));
// xxx...xxx
// xxx...xxx
// xxx...xxx
// ...xxx...
// ...xxx...
// ...xxx...
// xxx...xxx
// xxx...xxx
// xxx...xxx
7. 특이사항
없음
8. 다른 사람이 작성한 답
8-1. 가장 많이 쓰인 풀이법
function solution(picture, k) {
let result = [];
picture.map((v) => {
const cur = [...v].map((c) => c.repeat(k)).join('');
for(let i = 0; i < k; i++) result.push(cur);
});
return result;
}
'코딩 테스트 > 프로그래머스 - 자바스크립트' 카테고리의 다른 글
프로그래머스 LV.0 코드 처리하기 (0) | 2023.10.03 |
---|---|
프로그래머스 LV.0 직사각형 넓이 구하기 (0) | 2023.10.03 |
프로그래머스 LV.0 외계어 사전 (0) | 2023.10.03 |
프로그래머스 LV.2 JadenCase 문자열 만들기 (0) | 2023.10.02 |
프로그래머스 LV.1 같은 숫자는 싫어 (0) | 2023.10.02 |