본문 바로가기

반응형

분류 전체보기

[백준18870-silver2] 좌표 압축 (javascript) https://www.acmicpc.net/problem/18870 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표 Xj의 개수와 같아야 한다. X1, X2, ..., XN에 www.acmicpc.net [풀이] 📌 좌표압축 ? 만약 x축의 좌표가 [0 ,1 ,2 ,3 ,100 ,150]과 같이 주어졌을 때, 0~3은 각 1씩 차이라 크게 문제 되지 않지만 100과 150을 탐색하기 위해서는 100까지, 150까지 탐색해야하는 문제점이 있다. 다시말해 4~99, 101~149는 쓰지 않는데 탐색하고 있는 시간낭비를 하고 있는 것이다. 숫자의 갭차.. 더보기
[백준2751-silver5] 수 정렬하기 2 (javascript) https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net [풀이] let fs = require('fs'); let [n, ...input] = fs.readFileSync('/dev/stdin').toString().trim().split('\n'); input.sort((a, b) => a - b); console.log(input.join('\n')); 📌 여기서 주의할점은! sort() js 내부함수 사용할 시 숫자 배열 정렬은 무조건.. 더보기
로그아웃 시 다른 에러 상태 코드 도 같이 보여주는 문제 (axios + vue3) 현재 실무 vue 서비스에서클라이언트에서 로컬스토리지의 액세스 토큰 유무로 로그인/비로그인을 판단한다.axios를 사용하여 HTTP 요청을 보내고 응답을 처리하는 wrapper 함수로 동작 중 이다. 여기서는 axios의 요청 및 응답 인터셉터를 사용하여 특정 상황에 대한 처리를 구현하고 있다.    🍒 실무에서 axios 이용한 로그인, 로그아웃 기능 #1🍒 trouble issue -> trouble shooting #2           🔎 #1.  현재 접속하고 일정시간 지나면 자동으로 로그아웃 되는 부분의 기능이 어떻게 동작중인가? 토큰 자체가 갖고 있는 정보로 브라우저의 시간과 비교해서 로그아웃 당함로그아웃 로직은 API 호출 시 응답의 상태코.. 더보기
[Vue.js] Vue.js에서 BroadcastChannel 사용법: 실시간 데이터 동기화하기 최근 프로젝트에서 기획자분이 한 사용자가 같은 컴퓨터에서 여러 개의 브라우저 탭을 열어놓고 작업할 때, 'A' 탭에서 데이터를 변경하거나 어떤 처리를 했을 경우, 다른 탭('B' 탭)에 변경 사항이 즉시 반영되지 않는 문제를 해결해달라고 찾아왔다. 이 문제는 사용자 경험에 큰 영향을 미칠 수 있는 상황으로, 웹서비스가 관리자페이지이다보니 실시간 데이터 동기화가 중요한 서비스에서 반드시 해결해야 할 과제였다. 이번 글에서는 문제의 원인을 분석하고, 이를 해결하기 위해 어떤 접근 방식을 사용했는지 공유하고자 한다.        서론ATab, BTab 이 있는 상황에서 ATab이 로그아웃 할 경우 브라우저 내의 토큰을 제거하는 로직이 이미 구현되어 있었다.하지만 이렇게 할 경우 BTab 에선 ATab 에서 일.. 더보기
[백준11441-silver3] 합 구하기 (javascript) https://www.acmicpc.net/problem/11441 11441번: 합 구하기 첫째 줄에 수의 개수 N이 주어진다. (1 ≤ N ≤ 100,000) 둘째 줄에는 A1, A2, ..., AN이 주어진다. (-1,000 ≤ Ai ≤ 1,000) 셋째 줄에는 구간의 개수 M이 주어진다. (1 ≤ M ≤ 100,000) 넷째 줄부터 M개의 줄에는 www.acmicpc.net [풀이] N 개 요소의 배열 에서 M 개마다 i, j 누적합을 구하는 문제이다 처음 풀이에서는 시간초과가 났다. 난이도에 비해 쉽다면,, 무조건 시간초과 나는 문제임을 주의하자! ✂️시간 초과 나는 문제 const fs = require('fs'); let input = fs.readFileSync('./input.txt')... 더보기
[백준2167-silver5] 2차원 배열의 합 (javascript) https://www.acmicpc.net/problem/2167 2167번: 2차원 배열의 합 첫째 줄에 배열의 크기 N, M(1 ≤ N, M ≤ 300)이 주어진다. 다음 N개의 줄에는 M개의 정수로 배열이 주어진다. 배열에 포함되어 있는 수는 절댓값이 10,000보다 작거나 같은 정수이다. 그 다음 줄에는 www.acmicpc.net [유형] - 구현 - 누적 합 [풀이] 첫번째 리턴된 숫자 63을 예로 들면, i j x y = 1 1 2 3 (1,1) 위치부터~ (2,3) 위치까지 저장된 숫자들 합 ---> j, y | i, x const fs = require('fs'); const [[n, m], ...arr] = fs.readFileSync('./input.txt').toString().tr.. 더보기
[Vue.js] <script setup> 🔎 # 템플릿에 노출되는 최상위 바인딩 내부에 선언된 모든 최상위 바인딩(변수, 함수 선언, import) 은 템플릿에서 직접 사용할 수 있다. {{ capitalize('hello') }} {{ msg }} # 반응형 템플릿에서 참조될 때 ref 는 자동으로 언래핑 {{ count }} # defineProps() & defineEmits() 🔎 defineProps 및 defineEmits 는 내에서만 사용할 수 있는 컴파일러 매크로 이다. import 할 필요 없으며, 이 처리될 때 컴파일 된다. - 전달된 옵션을 기반으로 적절한 타입 추론을 제공 더보기
[CSS] z-index 의 동작방식 z-index 의 쌓임 맥락 z-index를 이해하기 위해서 먼저, 쌓임 맥락(Stacking Context) 의 개념을 이해해야 한다. 쌓임 맥락 이란, HTML 요소들에 사용자를 바라보는 기준으로 가상의 z축을 생성하여 3차원 개념으로 보는 것 이다. 따라서, 쌓임 맥락을 형성한다는 것은 자신만의 3차원 공간을 형성하는 것이며 그 요소들의 우선순위를 z-index 가 정하게 되는 원리이다. 출처 : https://tympanus.net/codrops/css_reference/z-index/ 위 그림을 보면, 각 요소들이 사용자를 바라보는 z축 상에서 z-index 에 따라 "쌓이는" 것을 볼 수 있다. 바로 이것이 쌓임 맥락의 개념이며 쌓임 맥락을 형성하는 조건은 꽤 많다. position 이 rel.. 더보기
[BOJ-10845_silver4] 큐 (자바스크립트) https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net [유형] - 자료구조 - 큐 [문제 풀이] 명령어를 판단할 배열요소는 temp에 넣고 "출력" 명령시 새로운 변수에 넣어준다 한줄에 하나씩 출력해줌! [코드] ||❌ 시간초과 난 코드 const fs = require('fs'); let [n, ...input] = fs.readFileSync('./input.txt').toString().trim().split('\n'); let.. 더보기
[BOJ-11866_silver5]요세푸스 문제 0 (자바스크립트) https://www.acmicpc.net/problem/11866 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net [유형] - 구현 - 자료 구조 - 큐 [풀이] K 번째를 제거하면서 배열에 넣어줌 대략 아래 처럼 [코드 풀이] const fs = require('fs'); let input = fs.readFileSync('/dev/stdin').toString().trim().split(' '); const n = +input[0]; // string -> number const k = +input[1]; let ans = []; //n 길이의 1~n 배열 생성 let arr = Array.. 더보기

반응형