[알고리즘] 문자열 내림차순으로 배치하기
·
알고리즘
문제 설명 문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다. 제한사항 str은 길이 1 이상인 문자열입니다. 입출력 예 s result "Zbcdefg" "gfedcbZ" 나의 풀이 function solution(s) { return s.split("").sort().reverse().join(""); } 문자열은 sort((a,b) => b-a);가 불가능해서 고민을 좀 했다. 하지만 조건이 결국 z-aZ-a인 것을 보고 문자열을 sort 시 A-Za-z라는 것을 생각했다. 이것을 뒤집으면 원하는 결과인 z-aZ-A가 나오기 때문이다.
[React] React18에서 추가된 Hook
·
React/실험실
React 18버전에 새롭게 추가된 Hook이 몇가지 있다. ▶ useId ▶ useTransition ▶ useDeferredValue ▶ useSyncExternalStore ▶ useInsertionEffect 사실 추가가 되었다고 사용해보지는 않았다. ( 사용성이 있는지는 의문...! ) useId 유니크한 Id 값을 만들어주는 Hook이다. 이게 끝이다 ㅋㅋ.... 태그에 id 값을 넣어야 하는 경우 const passwordField = () => { const passwordId = useId(); return ( ... ) } 다음과 같이 사용할 수 있다. 이렇게 사용하면 id 가 중복으로 들어가는 경우를 방지할 수 있겠지만, 굳이 사용해야할까? 라는 의문은 있다. id 를 고민하는 일이 ..
[React] useState vs useReducer
·
React/실험실
상태를 관리할 때 사용하는 것으로 useState와 useReducer 가 있다. 하지만 일반적으로 useState를 사용하고 useReducer를 사용하는 일은 거의 없었다. 그러다보니 궁금함이 생겼다. useReducer는 언제 사용하고, 왜 사용하는 것일까? 먼저 간략하게 둘의 차이를 알아보자. useState ▶ 간단한 상태 관리 ▷ 값이 하나인 경우 ▷ 상태들이 서로 관련이 없는 경우 ▶ 컴포넌트 내에서 사용 const [state, setState] = useState(initialState); useReducer ▶ 복잡한 상태 관리 ▷ 상태들이 서로 관련이 있거나, 참조가 필요한 경우 ▷ ex) 로그인된 사용자의 권한을 확인하여 다른 화면에 보여줘야 하는 경우 ▶ 여러 컴포넌트에서 상태가 ..
[알고리즘] 하샤드 수
·
알고리즘
문제 설명 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요. 제한사항 x는 1 이상, 10000 이하인 정수입니다. 입출력 예 arr return 12 true 11 false 13 false 10 true 입출력 예 설명 입출력 예 #1 10의 모든 자릿수의 합은 1입니다. 10은 1로 나누어 떨어지므로 10은 하샤드 수입니다. 입출력 예 #2 12의 모든 자릿수의 합은 3입니다. 12는 3으로 나누어 떨어지므로 12는 하샤드 수입니다. 입출력 예 #3 11의 모든 자릿수의 합은..
[JavaScript]   공백 표시가 안되는 경우
·
JavaScript
html에서 는 공백을 나타낸다. 하지만 자바스크립트에서 똑같이 를 넣으면 문자열로 출력된다. 알아보니 자바스크립트에서 공백을 넣어야하는 경우에는 유니코드 문자열을 사용해야 한다고 한다. 유니코드에서 공백은 \u00A0 이다. React에서도 변수에 \u00A0을 넣고 컴포넌트에서 출력하면 공백으로 나오니 자바스크립트에서 공백이 필요한 경우 유니코드를 사용하자!
VSCode Git 계정 변경
·
개발정보
회사에서 사용하는 github 계정과 개인적으로 사용하는 github 계정이 달라서 집에서 회사 프로젝트를 확인하려고 clone을 받는데 오류가 발생했다. remote: Repository not found... 구글에 검색했을 때 많이 나오는 해결 방법인 git remote set-url origin ~ 방식은 똑같이 해도 해결되지 않았다. 그러다 자격 증명 관리에서 변경하면 가능하다는 내용을 따라해서 해결했기 때문에 소개 하려고 한다. 제어판 > 사용자 계정 > 자격 증명 관리자에서 일반 자격 증명에 있는 github 관련 증명을 모두 지워주고 다시 진행하는 것이다. 해당 증명을 모두 지우고 다시 clone을 하니 vscode에서 로그인 요청 안내창이 나오더니 로그인하니 clone이 되었다.
[JavaScript] Date 함수 시간을 한국 시간으로 변경
·
JavaScript
JavaScript로 개발하다보면 Date 함수에서 사소한 불편함을 느끼는 경우가 있다. 바로 시간이다. new Date를 사용해서 현재 시간을 가져와서 확인한다면 바로 알 수 있다. // 현재 시간 : 2023-04-13 09:00:00 const curr = new Date(); console.log(curr); // 2023-04-13 00:00:00 Date의 기준이 영국시간으로 9시간 전이기 때문이다. 크게 보면 문제가 없을 수 있다. 모든 시간을 Date를 기준으로 사용한다면? 하지만 어떤 경우에는 9시간 차이로 인해서 13일이라면 12일로 나오는 경우도 있다. 프론트엔드에서 이런 차이가 얼마나 크겠냐 싶지만 크리티컬한 문제를 발생시킬 수 있는 부분이기도 하다. 그럼 이것을 한국 시간으로 어떻..
[React] CRA Path Alias 설정하기
·
React/실험실
본인은 프로젝트를 만들 때 CRA를 사용해서 사용한다. 그런데, 프로젝트를 진행하다보면 다른 경로의 모듈을 import할 때 상대 경로를 사용하면 길어지는 문제가 있다. 절대 경로를 사용해서 src/ 에서부터 받아온다면 길이가 짧아진다. 이것은 어찌보면 사소할 수 있는데, 개인적으로 코드에서 이런 사소한 부분을 해소하면 전체적인 코드의 가독성이 좋게 느껴져서 신경을 쓰고 있다. 다시 본론으로 넘어가서 상대 경로의 프로젝트를 절대 경로로 변경하기 위해서 craco를 사용하면 해결된다. craco는 cra로 만든 프로젝트의 경우 eject을 해야 설정이 변경 가능한 것을 설정을 덮어씌워서 변경시켜준다. npm i --save @craco/craco 프로젝트를 설치해준다. 그 다음에 루트에 craco.conf..