- 일단 정말 긴장됬다. 영상 녹화를 해본적도 없고, 유튜브 업로드도 해본적없어서 낯선일을 테스트시간내에 해야한다는
것에 대한 조금의 부담감과 테스트 난이도가 걱정됬었다.. 그렇게 시험은 시작됬고, 결과는 FAIL.. 이었다
변명의 여지는 없다.. 문제를 똑바로 읽었어야 했는데 바보였지 뭐ㅎㅎ 난이도 상문제는 일찌감치 반포기 상태였는데 사활을 걸었던 2번문제를 틀리고말았다 크.... 그래서..
<오늘의 문제?(test)>
1. 행렬 음양 더하기

function solution(arr1, arr2, signs) {
let answer = [];
for (let i = 0; i < arr1.length; i++) {
let sum = [];
for (let j = 0; j < arr1[i].length; j++) {
if (signs[i][j] === true) {
sum.push(arr1[i][j] + arr2[i][j]);
} else if (signs[i][j] === false) {
sum.push((arr1[i][j] + arr2[i][j]) * -1);
}
} answer.push(sum);
}
return answer
}
let arr1 = [[5, 7, 1], [2, 3, 5]];
let arr2 = [[5, 1, 6], [7, 5, 6]];
let signs = [[true, true, false], [false, true, false]];
console.log(solution(arr1, arr2, signs))
- 나의 풀이
: 일단 초기 answer값 세팅이 [[]] 이중 배열로 되어있었는데, 이 부분을 건드리면 안된다고 혼자 생각하고(시험문제니까?)
프로그래머스 문제 풀듯이 유연하게 풀 생각을 초반에 하지못해서 굉장한 시간을 잡아먹었다.
일단, + 연산를 위해 위치값도 필요했으므로 j값도 for문을 통해 만들어 돌려줬고, sum에 새로운 빈 배열값을 선언 할당한 뒤에
if문으로 true 값이 나올 경우와 false 값이 나올경우의 조건을 생성한 뒤 sum값에 push해주고 최종적으로 그 값을 answer에 push하면서 끝을냈다. 그렇다 .. 유일하게 맞는 단 하나의 문제다.
2. 별찍기 (모래시계 만들기)

function solution(star) {
for (let i = 13; i >= 1; i = i-2){
console.log(" ".repeat((13 - i) / 2) + "*".repeat(i))
}
for (let i = 3; i <= 13; i = i+2){
console.log(" ".repeat((13 - i) / 2) + "*".repeat(i))
}
}
let star = 7;
solution(star);
- 나의 풀이
: 다른 자연수값의 예시까지 생각해서 코드를 짜야되는지 몰랐다...... ㅠㅠ
저 n값이 7인경우의 예시 사진만 눈에 들어왔을뿐이고, 오로지 7의 경우에서만 해결이 되는 코드를 작성했다..
처음부터 난 삼각형 별찍기에서 별의 최대값을 구하는 식을 알고있었다.
star * 2 - 1
원하는 별의 개수에 2를 곱하고 1을 빼서 홀수값을 만들어야 마지막에 별 1개를 남긴 삼각형이 완성되는데,
본문과 같이 n값은 7전용인 코드를 짜고말았다.. 초기값 i = 13이라니 ㅋㅋㅋㅋ 웃음이난다.
결국 틀리고 말았고, 매니저님은 애당초 문제를 잘못읽었을뿐이지 풀수있는문제가 아니었냐며 위로를 해주셨다..
function solution(n) {
for (let i = n; i >= 1; i--) {
const spaces = " ".repeat(n - i);
const stars = "*".repeat(2 * i - 1);
console.log(spaces + stars);
}
for (let i = 2; i <= n; i++) {
const spaces = " ".repeat(n - i);
const stars = "*".repeat(2 * i - 1);
console.log(spaces + stars);
}
}
let star = 7;
solution(star);
- 원래 내가 했어야 될 풀이
: 주석을 참고하면 이해가 쉬울거다.. 아쉽다 ㅎㅎ