Front-End Dev.
-
[CodeKata] 프로그래머스(Lv3) : 스티커 모으기(2)Algorithm 2022. 2. 5. 18:43
🥋 Oooth More!! (Level 3) 🧮 풀이 먼저, sticker 배열의 홀수 요소들만의 합(oSum), 짝수 요소들만의 합(eSum) 중 최대값을 max에 저장했다. 그리고, 2가지 출발점(s1 = 최대값, s2 = 최대값의 인접값 중 큰 값) 부터 1칸을 건너뛰고 두 번째, 세 번째 중 최대값을 누적하면서 스티커를 뜯은 값과 최대값(max)를 비교해 큰 값을 저장했다. 이처럼 풀이했을 때, 예외 케이스가 발생할 수 있는 방법이었기에 정확성도 50% 미만이고, 반복적인 순회로 효율성을 통과하지 못했다. function solution(sticker) { let oSum = 0, eSum = 0; for (let i in sticker) { if (+i % 2 === 0) { eSum += st..
-
[CodeKata] 프로그래머스(Lv3) : 숫자 게임Algorithm 2022. 1. 30. 14:52
🥋 Oooth More!! (Level 3) 🧮 풀이 먼저, 지양했어야 하는 직관적인 풀이법이다. 물론 정확성 테스트는 통과했지만, 효율성에서 시간초과가 발생했다. A를 순회하면서, B에 대한 findIndex(), splice() 가 각각 들어가면서 시간복잡도가 O(n) * 2사이클이 발생했기 때문일 것이다. function solution(A, B) { let answer = 0; A = A.sort((a,b) => b-a) B = B.sort((a,b) => a-b) for (let num of A) { const idx = B.findIndex(n => n > num) if (idx !== -1) { B.splice(idx,1) answer++ } } return answer } answer은 정..
-
[Swift] Swift 문법 (6) - 조건문(if, switch)Front-End(Mobile)/iOS & Swift 2022. 1. 29. 00:15
이번 포스팅은 Swift의 조건문(Conditionals) 에 대해 알아보려고 한다. 조건문은 더욱이 여타 프로그래밍 언어와 많이 다르지 않다. 상대적으로 난이도도 어렵지 않은 내용이라, 간단한 포스팅으로 정리해보겠다! 📙 if 문 if문은 조건문에서 가장 흔하게 볼 수 있는 형태이다. 특정 조건에서 발생하는 로직을 작성하며, 이외 케이스를 위한 else, 추가조건 분기를 위한 else if 등이 있다. let a: Int = 2 if a < 0 { print("음수!") } else if a = 0 { print("0!") } else { print("양수!") } // 양수! 기본적인 문법은아래와 같으며, else는 이외의 케이스기 때문에 별도의 조건을 설정하지 않는다. if [조건] { // 내부..
-
[Swift] Swift 문법 (5) - 반복문(for, while)Front-End(Mobile)/iOS & Swift 2022. 1. 27. 01:05
이번 포스팅은 Swift의 반복문(Loop)에 대해 알아보려고 한다. Swift 역시 같은 로직을 반복하는 코드를 작성하기 위한 반복문이 존재하며, 그 문법이나 맥락 자체는 크게 다르지 않다. 상대적으로 난이도도 어렵지 않은 내용이라, 간단한 포스팅으로 정리해보겠다! 📙 For 문 for문은 순회할 수 있는 타입(이터레이터: 배열, 딕셔너리 등)을 순회하거나, 혹은 특정 횟수만큼 로직을 반복할 때 주로 사용되는 반복문의 일종이다. Swift는 기본적으로 for-in 반복문을 사용하며, 문법은 아래와 같다. // 배열 let alphabet: [String] = ["a", "b", "c", "d"] for char in alphabet { print(char) } // a // b // c // d // ..
-
[CSS/Side Lib.] Tailwind CSSFront-End(Web)/HTML, CSS 2022. 1. 23. 20:20
오랜만에 React에서 사용할 수 있는 Style 라이브러리를 토이 프로젝트와 함께 공부해보고 사용한 경험을 정리하고자 글을 쓴다. 바로, Tailwind CSS(이하 테일윈드) 이다! 많은 사람들이 어느 정도 알고 있는 라이브러리일 것이라 생각한다. 테일윈드는 React뿐만 아니라, Vue, Svelte 등 다양한 프레임워크에서 활용할 수 있으며, 또한 요즘 각광받고 있는 CSS 라이브러리 중 하나이다. npm trends 그래프를 가져와봤는데, 확실히 최근에 출시했음에도 불구하고 많은 Stars와 신속한 업데이트 속도를 보여주고 있다. 이렇듯, 테일윈드가 각광받고 있는 차별점은 아무래도 간단한 싱글라인 스타일이라고 생각한다. className 안에 테일윈드가 제공하는 속성 클래스들, 혹은 본인이 co..
-
[Craco] Craco로 설정하기 (절대경로, Less)Front-End(Web)/React - 프레임워크(React, Next) 2022. 1. 23. 18:45
이전 포스팅에선 Craco가 무엇인지, 그리고 기본적으로 설치하는 방법에 대해 알아보았다. 이번 포스팅은, Craco 익스텐션을 통해 내가 보일러 플레이트에 적용했던 설정들을 기록하는 시간을 갖도록 하겠다. 💙 Craco-alias : 절대경로 설정하기 절대경로는, 모듈들을 참조(import)할 때 경로를 루트(root) 혹은 src로부터 작성하기 위해 설정하곤 한다. 상대경로로 작성된 경로는, 아무래도 가독성도 떨어질뿐더러 파일이 추가되거나 수정될 때 경로추적이 매우 번거롭다는 단점이 있다. tsconfig.json으로 설정하면 경로추적은 가능하나, 컴파일 시 해당경로의 모듈을 찾지 못한다는 에러가 발생한다. 그렇기에, Webpack을 eject해서 경로에 대한 정보를 추가해주어야 하며, 이 번거로움을..
-
[CodeKata] 프로그래머스: 1.23(일), 가장 긴 펠린드롬Algorithm 2022. 1. 23. 17:58
🥋 Oooth More!! (Level 3) 🧮 풀이 const isPelindrom =(s) => { const cen = Math.ceil(s.length / 2) - 1; for (let i = 0 ; i { for (let l = s.length ; l > 1 ; l--) { for (let i = 0 ; i new Array(len).fill(false)); for(let i = 0; i < len; i++) { dp[i][i] = true; } for(let i = 0; i < len - 1; i++) { if(s[i] === s[i+1]) { dp[i][i+1] = true; answer = 2; } } for(let i = 3; i
-
[Swift] Swift 문법 (4) - Function(함수)Front-End(Mobile)/iOS & Swift 2022. 1. 22. 01:42
이번 포스팅은 Swift의 함수에 대해 알아보도록 하겠다. 함수 개념 자체는 모든 프로그래밍 언어에서 자주 사용되기에 생소하지 않을 것이다. 특정 인자(매개변수)를 받아 내부에 설정된 로직을 수행하여, 결과(반환값)를 산출하기 때문에 반복적인 로직을 기능화하는데 주로 사용되는 문법이다. 함수의 문법도 크게 상이하지 않고, 그 개념도 프로그래밍 언어 범주에 많이 중첩되기 때문에 어렵지 않게 이해할 수 있으리라! 📙 Function(함수) 란? Swift 공식문서에서 함수는 "특정 임무를 수행하는 독립된 코드 조각" 이라고 정의한다. 함수는 고유 이름을 가지며 매개변수(Parameter)라고 하는 특정값들을 받아, 일정한 로직으로 값을 반환하는 역할을 수행한다. Swift 역시 함수형 프로그래밍 작성을 위한..