https://school.programmers.co.kr/learn/courses/30/lessons/64064코드function solution(user_id, banned_id) { let answer = new Set(); const get_pattern = (id) => { const transformed = id.replace(/\*/g, "."); return new RegExp(`^${transformed}$`); }; const check_banned = (pattern) => { return user_id.filter((id) => pattern.test(id)); }; const bt = (idx, banned_set) => { if (idx === b..
전체 글
https://school.programmers.co.kr/learn/courses/30/lessons/43162코드3가지 버전으로 코드를 작성했다. 셋 다 정답 코드이다.양방향 큐를 이용한 BFSfunction solution(n, computers) { let answer = 0; const visited = new Array(n).fill(false); const bfs = (start)=>{ const q = [start]; visited[start] = true while(q.length>0){ const now = q.shift(); for(let i=0;i재귀를 이용한 DFSfunction solut..

https://school.programmers.co.kr/learn/courses/30/lessons/12913코드function solution(land) { let answer = 0; const n = land.length; const dp = Array.from(new Array(n), ()=>new Array(4).fill(0)); for(let i = 0;i 땅따먹기는 행을 하나씩 차례로 밟으면서 내려와야 한다. 그 말은 k번째 행으로 오기 위해서는 k-1행을 무조건 거쳐야 한다는 말이다. 이런 경우에는 이전에 저장된 값을 이용하여 연산 횟수를 줄이는 DP(Dynamic Programming)을 사용하면 시간 복잡도를 작게 만들어서 풀 수 있다. 2차원 배열 `dp`는..
https://school.programmers.co.kr/learn/courses/30/lessons/12927?language=javascript코드function solution(n, works) { let answer = 0; works.sort((a,b)=>b-a) let idx = 0; while(n > 0){ --works[idx++]; n--; if (works[idx-1]= works[idx]){ idx = 0; } } for(const w of works){ answer += w**2; } return answer;} 1. 작업량(works) 배열을 내림차순으로 ..
https://school.programmers.co.kr/learn/courses/30/lessons/17687 코드function solution(n, t, m, p) { let answer = ''; let sequence = "" let num = 0; while(sequence.length 1. `sequence`라는 문자열에 0부터 n진법으로 변환한 문자열을 쭉 이어붙인다. 이 동작은 `sequence`의 길이가 `t*m` 이상이 될 때까지 반복한다.2. `sequence`를 m개의 원소를 가진 덩어리들로 나눴을 때, p-1번째(제로 인덱스 기준)에 있는 원소들만 뽑아서 `answer`에 문자열로 저장하면 된다. 그걸 코드로 구현하면 11~14번째 줄과 같다.여기서 5~9..
https://www.acmicpc.net/problem/13413코드for _ in range(int(input())): n = int(input()) othello_1 = input() othello_2 = input() white = 0 black = 0 for i in range(n): if othello_1[i] != othello_2[i]: if othello_1[i] == 'W': white += 1 else: black += 1 print(max(white, black)) 코드는 다음과 같은 단계로 동작한다. 1. 초기 상태와 목표 상태의 같은 위치..