반응형
1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/68645
2. 구현
function solution(n) {
let answer = [];
let count = 0;
let arr = Array.from({ length: n }, (el, idx) => Array(idx + 1).fill(0));
let currentX = -1; // 상하
let currentY = 0; // 좌우
while (n > 0) { // n의 값이 유효할 때까지 반복(안에 있는 세모들도 결국 같은 모양새이므로)
for (let i = 0; i < n; i++) {
// 위에서 아래로 내려가는 대각선
currentX++;
count++;
arr[currentX][currentY] = count;
}
for (let i = 0; i < n - 1; i++) {
// 왼쪽에서 오른쪽으로 가는 선
currentY++; // 이미 위의 for문을 통해 currentX 값이 삼각형 가장 밑 변이므로
count++;
arr[currentX][currentY] = count;
}
for (let i = 0; i < n - 2; i++) {
// 아래에서 위로 내려가는 대각선
currentX--;
currentY--;
count++;
arr[currentX][currentY] = count;
}
n -= 3; // 내부 삼각형 빗변 길이 = 외부 삼각형 빗변 길이 - 3(그림보면 규칙 찾을 수 있음)
}
for (let i = 0; i < arr.length; i++) {
answer = [...answer, ...arr[i]]; // 2중 배열 풀어줌
}
return answer;
}
결국 중간에 답을 보고 연구하긴 했지만 이 문제를 풀기위해 고민하느라고 두뇌가 살짝 말랑해진 것 같다. 머리 쓴 느낌 ㅋㅋㅋㅋㅋㅋ어렵지만 풀이를 알고나면 재밌다.. 풀이가 머리 속에 생각이 안날 뿐^^
이해에 도움이 된 블로그)
복기
6/20
반응형
'프로그래머스 > 구현' 카테고리의 다른 글
[구현] 프로그래머스 '불량 사용자' - js (0) | 2023.05.05 |
---|---|
[구현] 프로그래머스 '124 나라의 숫자' - js (0) | 2023.05.03 |
[재귀] 프로그래머스 '쿼드압축 후 개수' - js (0) | 2023.04.29 |
[구현] 프로그래머스 '기지국 설치' - js (0) | 2023.04.28 |
[구현] 프로그래머스 '숫자 게임' - js (0) | 2023.04.25 |