[프로그래머스 level2] 삼각 달팽이
문제
https://programmers.co.kr/learn/courses/30/lessons/68645
문제 풀이
코드1
function solution(n) {
let arr=Array.from(Array(n), ()=>Array(n));
let x=-1 ,y=0;
let cnt=0;
while(n>0){
for(let i=0; i<n; i++) arr[++x][y]=++cnt;
for(let i=0; i<n-1; i++) arr[x][++y]=++cnt;
for(let i=0; i<n-2; i++) arr[--x][--y]=++cnt;
n-=3;
}
return arr.flatMap(e=>e);
}
이문제도 결국 규칙을 찾아내면 쉬운 문제이다. 그림에 지레 겁먹지 말자!
이분의 코드를 참고해서 작성했다. 빙글빙글 돌면서 배열에 넣는 숫자가 1씩 줄어든다는 것을 활용한 코드이다. 보기에도 예쁘고 아주 맘에 드는 코드! flatMap
메소드는 처음인데, 이를 통해 이차원 배열을 하나로 만든다는 것이 신기했다. 이런 메소드가 있다는걸 기억해두자!
코드2
처음에 생각했던 규칙인데, (네방향탐색처럼 푸는 방식) 이 방식으로도 한번 풀어보자!
이분 코드를 참고하면 좋을 것 같다.
이론
- Array.flatMap 메소드
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/flatMap
Author And Source
이 문제에 관하여([프로그래머스 level2] 삼각 달팽이), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@rladpwl0512/프로그래머스-level2-삼각-달팽이저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)