알게된 내용
reverse, 전개 함수
1. 조건
이것도 굉장히 널널한 조건이였다.
뭘해도 시간초과없이 풀 수 있을것같다.
하지만 최대한 배웠던 자료구조로 풀어보려고 시도했다.
2. 풀이
배운걸 써먹어보자라는 느낌으로 풀어본 것 같다.
그래서 대충 Stack과 Queue만들어서 문자로 만들어서 return해주었다.
3. 내 풀이
function solution(food) {
let result = ''
const Queue = []
const Stack = []
food.map((mount, idx) => {
if (idx === 0) return;
Queue.push(parseInt(mount / 2))
Stack.push(parseInt(mount / 2))
})
for (let i = 0; i < Stack.length; i += 1) {
result += `${i + 1}`.repeat(parseInt(Stack[i], 10))
}
result += '0'
for (let i = Stack.length - 1; i >= 0; i -= 1) {
result += `${i + 1}`.repeat(parseInt(Stack[i], 10))
}
return result;
}
solution([1, 3, 4, 6])
solution([1, 7, 1, 2])
풀긴 했지만 굉장히 복잡하기도 하고 굳이 이렇게 안풀어도 될 것 같다.
근데 뭐 배웠던 자료구조 써먹어 보는데 의의를 두었으니...
풀리긴했다.
4. 다른 풀이 (전개 함수와 reverse 활용)
function solution(food) {
const game = []
food.map((item, idx) => {
if (idx === 0) return;
game.push(String(idx).repeat(parseInt(item / 2, 10)))
})
return [...game].join("") + '0' + [...game].reverse().join("")
}
solution([1, 3, 4, 6])
solution([1, 7, 1, 2])
속도와 코드 가시성을 생각한다면 이게 훨씬 빠르고 좋다.
'개발이야기 > 알고리즘' 카테고리의 다른 글
[알고리즘] 프로그래머스 SQL(1) (0) | 2023.02.09 |
---|---|
[알고리즘] 프로그래머스 과일 장수 (0) | 2023.02.05 |
[알고리즘] 프로그래머스 햄버거 만들기 (0) | 2023.02.02 |
[알고리즘] 프로그래머스 옹알이(2) (0) | 2023.02.01 |
[알고리즘] 프로그래머스 숫자 문자열과 영단어 (0) | 2023.01.31 |