전체 글 (65) 썸네일형 리스트형 2025년 3월 한달 회고 한달 동안 취업 준비에 매진했고 3개의 취업 스터디를 병행했다. '나'라는 사람에 집중하면서 과연 내가 좋아하는 일이 무엇일까를 고민하게 되는 한달이였다. 체인지업 스터디면접관 이형이 진행하는 '체인지업'에 참여했다.여기서는 자율적으로 스터디를 모집할 수 있었는데, 스터디 구하는 것부터가 힘들었다. 마음에 드는 스터디를 총 10곳을 지원한 끝에, 겨우 한 팀에 합류할 수 있었다. 결국, 마음에 맞는 5명의 사람이 같이 팀을 이뤄 스터디를 진행했고, 우리만의 규칙을 세웠다.- 매일 루틴 : 오전 8시기상, 경제신문스크랩, 1일 1형 시청, 운동- 그룹 스터디 : 일주일 3번 스터디 진행 (경험 분해(3C4P), 자기소개서 첨삭)- 모각공 : 일주일 3번 이상 매일 루틴을 실천하면서 팀원들의 열정적인 태도에.. [JavaScript] 12904. A와 B 문제 링크https://www.acmicpc.net/problem/12904문제 해설A와 B로만 이루어진 영어 단어가 존재한다.두 문자열(S, T) 가 주어질 때, S를 T로 바꿀 수 있는 지 판별한다.문자열을 바꾸기 위한 연산은 다음과 같다.1. 문자열의 뒤에 A를 추가한다.2. 문자열을 뒤집고 뒤에 B를 추가한다. 예시BABBA B가 ABBA 가 되기 위해선 B, BA, ABB, ABBA 과정을 거치며, 최종적으로 ABBA가 됐으므로, 1을 리턴한다.만약 변경하지 못할 경우, 0을 리턴한다. ❌ 문제 접근 1 연산의 종류는 2가지이다. 따라서 연산 (1) 과 연산 (2)를 적용했을 때 다음과 같이 트리 형태로 나타낼 수 있다.시간 복잡도는 O(2^N)이 될것이고, 제한조건에 N은 1000자리이하라고 .. [JavaScript] 1446. 지름길 문제 설명0부터 목적지(d)까지 가되, 가장 빠르게 갈 수 있는 거리를 찾는다.만약 지름길이 없다면 거리는 d가 되지만, 중간에 지름길이 있다면 그 거리는 더 짧아진다. 예시2 10010 60 4050 90 20 d가 100이고, 지름길이 총 2개이다. - 0 -> 10 -> 60 -> 100 : 10 + 40 + 40 = 90- 0 -> 50 -> 90 -> 100 : 50 + 20 + 10 = 80 이므로, 정답은 80이다. 문제 해결이전 값이 이후 값에 영향을 주기 때문에, dp로 해결할 수 있었다. DP 배열 정의- dp[i] : i 위치까지 가는 데 필요한 최단 거리- 초기값 : 각 위치의 인덱스 값으로 초기화 (지름길을 사용하지 않았을 때의 거리) 식각 위치 i에 대해:1. 이전 위치에서 한.. Vite 로컬 개발 시 모바일 테스트하는 방법 Vite를 사용하여 로컬 개발을 진행할 때, 모바일에서도 UI를 확인하고 싶다면 vite --host 옵션을 활용하면 된다. 이를 통해 같은 네트워크에 연결된 모바일 기기에서도 개발 서버에 접속할 수 있다. 1. Vite 서버를 모바일에서도 접근 가능하도록 설정package.json 수정"scripts": { "dev": "vite --host"} 패키지 스크립트를 수정한 이유 npm run dev를 돌린다.결과적으로 터미널에 http://localhost:5173 이외의 http://[Ipv4]:5173 주소가 아래와 같이 추가로 제공된다. npm run dev 실행 후, bash ➜ Local: http://localhost:5173/ ➜ Network: http://[아이피주소1]:5173.. [JavaScript] 구간 합 구하기 5 문제 설명표와 구간을 나타내는 테스트 케이스가 주어질 때, 그 구간까지의 합을 구하는 문제이다. 만약 (2,2) - (3,4)의 구간합을 구하는 문제에서는 파란색 칸만큼 더하여 3+4+5+4+5+6 = 27이다. 문제 풀이구간합으로 풀 수 있었다.우선 2차원 배열 dp를 선언한다. dp[i][j]는 (0,0) 부터 table[i][j] 까지의 합이다.그림에서 보다싶이, 파랑과 빨강이 겹치는 부분이 존재하기 때문에 공통 된 부분은 빼줘야 한다. 코드로 나타내면 다음과 같다. 우선 dp를 (n+1)x(n+1) 사이즈를 0으로 초기화해주고,1) 왼쪽 dp 값 + 오른쪽 dp 값을 더한다.2) 대각선 dp 값을 빼준다.3) 현재 값을 더해준다. 이 과정을 통해 dp에 (0,0) 부터 현재 좌표까지 누적한 값들.. [Javascript] 백준 1018. 체스판 다시 칠하기 1. 입력으로 주어진 nxm 보드판에서 체스판(8x8)로 자른다.2. 체스판(8x8) 에서 예상한 컬러와 현재 컬러가 다르다면 변경 횟수를 1증가시킨다. 체스판의 종류는 2가지1. (0,0) 이 블랙(B)으로 시작하면서 교차로 색이 나오는 체스판 2. (0,0) 이 화이트(W)로 시작하며서 교차로 색이 나오는 체스판 두 개의 경우는 다 비교해야 하지만, 사실은 둘 중 하나만 하더라도 64 - (둘 중 하나를 돌렸을 때 나오는 경우) 로 나머지도 구할 수 있었다.편의상 1, 2 체스판을 각각 블랙 체스판, 화이트 체스판이라고 말하겠다. 따라서 나는 화이트 체스판이라고 가정해서 풀었다.화이트 체스판에서 예상한 컬러 구하는 법1. 인덱스가 홀수 + 홀수 이거나 짝수 + 짝수 -> 화이트(W)2. 인덱스가 홀수.. [JavaScript] 백준 1535. 안녕 이 문제는 N이 크지 않아서 dfs 로 풀어도 가능하다.다음과 같이 각 노드에 대해 뻗어 나가는 경우는 2개이다.1. 인사를 한다2. 인사를 안한다트리로 나타내면 다음과 같고, 시간복잡도는 2의 N승이다.하지만, 제한조건 N의 수가 커진다면, 시간복잡도를 만족하지 않을 수 있다.그럼 어떻게 최적화를 할 수 있을까? 경우의 수를 구하는 문제에서는 배낭(Knapsack) 알고리즘으로 해결할 수 있었다.같은 색 노드를 봤을 때 사실 인덱스(i)만 다르지 얻을 수 있는 행복과 현재 체력은 같다. 따라서 i 번째 사람과 인사를 안할 경우 i-1번째 사람한테서 가져오면 된다. 하지만 i번째 일때도 경우의 수가 4개 정도 존재한다. 그 중 어떤 경우의 수에서 값을 가져와야할까?이것까지 고려해주기 위해 dp는 1차원 .. [JavaScript] 백준 1976 - 여행 가자 각 도시들 사이에 길이 있을 수도 있고, 없을 수도 있다. 도시들의 연결되어 있는 정보를 보고 여행갈 수 있는 지를 판별하여 "YES"나 "NO"를 출력하면 된다.도시들이 연결되어있다는 말은 하나의 그래프라는 것이고 유니온 파인드 알고리즘을 사용하여 알 수 있다. 유니온 파인드각 연결정보가 주어질 때, 그 그래프를 모두 연결해보면 2개의 그래프로 나뉜다는 것을 알 수 있다. 그렇다면 유니온 파인드는 어떻게 구현할까? 유니온 파인드는 부모(Parent) 배열을 사용하여 각 원소가 속한 집합을 나타낸다.초기에는 각 원소가 자기 자신을 부모로 가지도록 설정한다.(1) Find 연산 (경로 압축: Path Compression)Find 연산은 특정 원소가 속한 집합의 대표(root) 원소를 찾는 과정일반적인 .. 이전 1 2 3 4 ··· 9 다음