본문 바로가기

소프트웨어 개발/자료구조 & 알고리즘4

큐/스택 알고리즘 문제 with JavaScript 큐(Queue) 데이터 구조 아래는 add, remove, peek 메서드를 포함하는 큐 클래스다 class Queue { constructor() { this.data = [] } add(record) { this.data.unshift(record) } remove() { return this.data.pop() } peek() { return this.data[this.data.length - 1] } } 큐 Weave 두 개의 큐를 교차로 결합하여 새로운 큐를 반환하기 위에서 만든 큐 클래스를 사용해야 한다 function weave(sourceOne, sourceTwo) { const q = new Queue() while (sourceOne.peek() || sourceTwo.peek()) {.. 2021. 3. 7.
알고리즘 문제 with JavaScript FizBuzz 1부터 n까지 출력하는 프로그램. 3의 배수는 fizz, 5의 배수는 buzz, 15의 배수는 fizzbuzz를 출력. # modulo % operator function fizzBuzz(n) { for (let i = 1; i 2021. 2. 28.
Array 알고리즘 문제 with JavaScript Array Chunk array를 주어진 chunk 크기로 나누기 chunk([1, 2, 3, 4, 5], 2) --> [[ 1, 2], [3, 4], [5]] # slice function chunk(array, size) { let chucked = [] for (i = 0; i 2021. 2. 28.
String 알고리즘 문제 with JavaScript function vowels(str) { let counter = 0 for (const char of str.toLowerCase()) { if ('aeiou'.includes(char)) counter++ } return counter } 거꾸로 뒤집기 스트링을 거꾸로 출력하기 ("apple" → "elppa") #1 reverse() function reverse(str) { return str.split('').reverse().join('') } #2 for-of loop function reverse(str) { let reversed = '' for (const char of str) { reversed = char + reversed } return reversed } #3 reduce().. 2020. 12. 21.