본문 바로가기
반응형

분류 전체보기1062

BOJ 2338 : 긴자리 계산 with 10^N진법 알고리즘 문제 전체 링크 삼성 C형 전체 링크 https://www.acmicpc.net/problem/2338 참고 - BOJ 10757 : 큰 수 A+B - BOJ 10757 : 큰 수 A+B with 10^N진법 - BOJ 2338 : 긴자리 계산 - BOJ 2338 : 긴자리 계산 with 10^N진법 - 36진법 긴자리 두 수의 곱셈 - 36진법 긴자리 두 수의 곱셈 with 36^5진법 - 36진법 긴자리 두 수의 곱셈 with 36^5진법 + Fast Input 큰 수 A+B with N진법을 참고하여 뺄셈과 곱셈도 마찬가지로 N진법을 적용해보자. 덧셈의 경우 100000000000000000진법까지 가능했지만, 곱셈은 자릿수가 2배로 오르기 때문에 100000000진법(0이 8개)까지만 가.. 2023. 8. 26.
긴자리 후위 표기법 구현하기 삼성 C형 전체 링크 참고 - 후위 표기식 - 중위 표기식 BOJ 1918 : 후위 표기식을 참고하면, 아래의 규칙대로 중위 표기식을 후위 표기식으로 바꿀 수 있다. 1. stack이 비어있거나 열린 괄호 "(" 는 stack에 넣는다. 2. 열린 괄호 "(" 다음의 연산자는 stack에 넣는다. 3. 현재 stack의 가장 위에 있는 연산자보다 우선순위가 큰 연산자는 넣는다. ( * = / > + = - ) 4. 현재 stack의 가장 위에 있는 연산자보다 우선순위가 낮은 연산자가 들어오려고 한다면, 스택이 비거나, 열린 괄호 "(" 가 나오거나 해당 우선순위가 더 커질 때까지 스택을 비우고, 연산자를 넣는다. 5. 닫힌 괄호 ")" 가 나오면 열린 괄호 "(" 가 나올 때까지 스택을 비운다. 이때, .. 2023. 8. 25.
BOJ 5397 : 키로거 with 세그먼트 트리, 링크드 리스트 삼성 C형 전체 링크 알고리즘 문제 전체 링크 https://www.acmicpc.net/problem/5397 참고 - BAPC 2010 I번 문제 - BOJ 5397 : 키로거 (스택) - 링크드 리스트 Linked List - 링크드 리스트 삭제 - 구간 합 구하기 with 바텀 업 세그먼트 트리 (Bottom-Up Segment Tree) - BOJ 1655 : 가운데를 말해요 with 세그먼트 트리 - 세그먼트 트리를 이용한 링크드 리스트의 삽입과 삭제 - BOJ 5397 : 키로거 with 세그먼트 트리, 링크드 리스트 위 문제를 스택을 이용한 방법 대신, 세그먼트 트리와 링크드 리스트로 풀어보자. 다만 이 방법으로는 이 문제의 tc를 시간 내에 통과할 수 없다. 키로거는 커서를 한 칸씩 이동.. 2023. 8. 25.
세그먼트 트리를 이용한 링크드 리스트의 삽입과 삭제 삼성 B형 전체 링크 삼성 C형 전체 링크 참고 - 링크드 리스트 Linked List - 링크드 리스트 삭제 - 구간 합 구하기 with 바텀 업 세그먼트 트리 (Bottom-Up Segment Tree) - BOJ 1655 : 가운데를 말해요 with 세그먼트 트리 - BOJ 5397 : 키로거 with 세그먼트 트리, 링크드 리스트 (구현) append, insert, erase 구현 세그먼트 트리를 이용해 링크드 리스트를 더 빠르게 insert, erase 할 수 있다. append는 세그먼트 트리에서 node를 순서대로 추가한다. 그리고 insert, erase는 해당 node를 각각 링크드 리스트로 구현하여 해결할 수 있다. 세그먼트 트리의 index를 잘 관리한다면 O(logN) 연산으로 a.. 2023. 8. 25.
Node JS - log4js로 함수 이름과 줄 번호 로그 남기기 (log4js with Function Name, Line Number) Node JS 전체 링크 log4js를 이용하여 로그를 남겨보자. npm install log4js log4js.configure에서 아래의 옵션을 설정할 수 있다. 콘솔에도 출력하고 싶다면 out의 type을 stdout으로 설정한다. 그리고 로그를 출력할 파일, 로그 파일의 최대 사이즈, backup 파일 개수 등을 설정할 수 있다. appenders: { out: { type: "stdout" }, // 콘솔 출력 app: { type: "file", filename: "D:\\github\\node-server\\log\\logFiles\\application.log", maxLogSize: 512 /* byte */, backups: 3, }, exceptions: { type: "file", .. 2023. 8. 25.
리액트 - 로컬 스토리지 유효기간 설정하기 (Setting Local Storage Expiration Time) 리액트 전체 링크 참고 - 로컬 스토리지 사용 방법과 세션 스토리지 비교 - 두 날짜 사이의 시간 차이 구하기 로컬 스토리지의 유효 기간을 설정해 보자. 아래는 10초 뒤에 로컬 스토리지에서 값이 제거되는 예제다. 로컬 스토리지 만료 기간 설정하기 로컬 스토리지는 만료 기간이 따로 존재하지 않는다. 따라서 값을 저장할 때, 유효기간을 함께 설정한다. const setLocalStorageTimer = (key, value, time) => { let now = new Date(); let item = { value: value, expireTime: now.getTime() + time, }; localStorage.setItem(key, JSON.stringify(item)); }; Date 객체에서 .. 2023. 8. 21.
리액트 - 새 창으로 로그인해서 현재 상태 유지하기 깃허브 데스크탑으로 프로젝트 관리하기 강의 오픈!! (인프런 바로가기) 리액트 전체 링크 참고- 깃허브 OAuth Access 토큰 발급 받기- Toast UI 에디터로 깃허브 마크다운 저장하기 - GitHub OAuth Project Settings- Material UI로 깃허브 로그인 프로필 만들기- 깃허브 OAuth 콜백 처리하기- 인증 토큰 획득 서버 구현하기- 인증 토큰으로 로그인 상태 관리하기- 로그인 정보를 활용하여 Commit Message 남기기- 새 창으로 로그인해서 현재 상태 유지하기 로그인이 되지 않은 상태에서 편집을 하다가,로그인 버튼을 누르면  callback으로 인해 편집된 내용이 사라지게 된다. 현재 상태를 유지한 채로 로그인을 하려면 window.open을 이용해 새 창을.. 2023. 8. 19.
리액트 - GitHub OAuth 로그인 정보를 활용하여 Commit Message 남기기 깃허브 데스크탑으로 프로젝트 관리하기 강의 오픈!! (인프런 바로가기) 리액트 전체 링크 참고- 깃허브 OAuth Access 토큰 발급 받기- Toast UI 에디터로 깃허브 마크다운 저장하기 - GitHub OAuth Project Settings- Material UI로 깃허브 로그인 프로필 만들기- 깃허브 OAuth 콜백 처리하기- 인증 토큰 획득 서버 구현하기- 인증 토큰으로 로그인 상태 관리하기- 로그인 정보를 활용하여 Commit Message 남기기- 새 창으로 로그인해서 현재 상태 유지하기 이제 인증 정보를 이용하여 README.md를 수정한 유저를 커밋 메시지에 추가해보자.SimpleToastEditor 수정 SimpleToastEditor에서 GitHub RESTful POST API.. 2023. 8. 19.
리액트 - GitHub OAuth 인증 토큰으로 로그인 상태 관리하기 (GitHub OAuth Login Status) 깃허브 데스크탑으로 프로젝트 관리하기 강의 오픈!! (인프런 바로가기) 리액트 전체 링크 참고- 깃허브 OAuth Access 토큰 발급 받기- Toast UI 에디터로 깃허브 마크다운 저장하기 - GitHub OAuth Project Settings- Material UI로 깃허브 로그인 프로필 만들기- 깃허브 OAuth 콜백 처리하기- 인증 토큰 획득 서버 구현하기- 인증 토큰으로 로그인 상태 관리하기- 로그인 정보를 활용하여 Commit Message 남기기- 새 창으로 로그인해서 현재 상태 유지하기 이제 로그인이 되면 버튼을 로그아웃으로 변경하고 프로필 사진도 변경해보자로그인 체크 함수 이전 글에서 로그인 이후 얻은 정보를 로컬 스토리지에 저장하였다.localStorage.setItem("GITH.. 2023. 8. 19.
반응형