썸네일 [JS ] 3차 방금그곡 https://school.programmers.co.kr/learn/courses/30/lessons/17683 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 문제의 핵심은 '#'을 어떻게 처리할 지가 관건이었습니다. 성공한 풀이는 정규표현식으로 문자열 뒤에 오는 '#'을 검색하고 해당 문자열과 '#'을 함께 소문자로 바꾸고 문제를 풀었습니다. 네오가 기억한 멜로디를 재생 시간 동안 반복된 멜로디에 split하여 나뉘면 해당되고 나뉘지 않다면 해당 곡이 아니라 판단하였습니다. function solution(m, musicinfos) { co..
썸네일 [JS] 전력망 둘로 나누기 -bfs https://school.programmers.co.kr/learn/courses/30/lessons/86971 [프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr](https://school.programmers.co.kr/learn/courses/30/lessons/86971) 접근 방법 트리를 만든다. 노드 하나씩 방문한다. 2-1. 끊어질 노드를 방문 표시를 한다. 2-2. bfs로 방문할 노드들의 개수를 구한다. 차이는 (총 노드의 개수 - 방문한 노드 개수) - 방문한 노드 개수의 절대값이다. n=9, 첫번째 노드가 연결된 개수 = 8일 경우 두..
썸네일 [JS] 오픈채팅방 - Object와 Map의 차이점 https://school.programmers.co.kr/learn/courses/30/lessons/42888 문제 접근 record를 순회하면서 상태(입장/퇴장)를 확인한다. map을 사용해 id => nickname 쌍을 업데이트 한다. 퇴장(Leave)할땐 제외한다.(nickname변화 없으므로) 그 다음 record 반복을 다시 돌면서 map객체의 id 값(nickname)과 문자열을 result에 추가한다. function solution(record) { const recordMap = new Map(); const result = []; for (ele of record){ let [state, id, nickname] = ele.split(' '); if (state !== 'Leave..
[PYTHON/파이썬] Level2 [1차]캐시 - LRU/deque/maxlen https://school.programmers.co.kr/learn/courses/30/lessons/17680 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr LRU 알고리즘 페이지 부재가 발생했을 경우 가장 오랫동안 사용되는 페이지를 제거하는 알고리즘 캐시 크기가 정해져 있고 캐시 크기 만큼 페이지를 받고 그 이상의 페이지를 받을때 만약 동일한 값이 있다면 가장 최신 값으로 변경 동일한 값이 없다면 가장 오래된 값을 제거하고 새로운 값을 넣는다. 문제 풀이 빈 스택을 만들어 도시를 하나씩 넣는다. 스택의 크기는 최대 캐시 크기이다. 만약 스택에 동일한..
[PYTHON/파이썬] level 2 괄호회전하기 - deque https://school.programmers.co.kr/learn/courses/30/lessons/76502 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 문자열을 최대 문자열 길이까지 순차적으로 회전시켰을 때, 올바른 괄호 문자열이 되게 하는 x의 개수를 구하는 문제 soltuion - 성공 from collections import deque # 올바른 문자열인지 확인하는 함수(올바른 문자열이면 1를 올바르지 않다면 0을 반환함) def is_bracket_str(target_str): bracket = {'(':')','{':'}',..
썸네일 [PYTHON/파이썬] Level2 행렬의 곱셈 - 3중 for문 / zip https://school.programmers.co.kr/learn/courses/30/lessons/12949 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 안녕하세요 맨덕입니다. 오늘은 프로그래머스에서 행렬의 곱셈을 풀어봤습니다. 오랜만에 행렬의 곱셈을 하려다보니 제가 푸는 방식이 맞는지 헷갈렸습니다.. : ) 그래서 행렬의 곱셈의 공식부터 정리하겠습니다. 행렬의 곱셈 문제풀이 원소 하나씩 인덱스로 접근하여 계산합니다. solution - 성공 def solution(arr1,arr2): # [[0, 0], [0, 0], [0, 0]] result ..
썸네일 [JS] level0 점의 위치 구하기 - 삼항연산자, 구조분해할당 https://school.programmers.co.kr/learn/courses/30/lessons/120841 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 - 점의 위치를 입력 받아 몇 사분면인지 출력한다. 해결 점의 위치 ( x,y) - 제 1사분면 : x>= 0 , y>=0 - 제 2사분면 : x=0 - 제 3사분면 : x=0 ? 1 : 4; return dot[1] >= 0 ? 2 : 3 } if(dot[0] >= 0) return dot[1] >=0 ? 1 : 4; - dot[0]은 x 값을 나타낸다. - x 값이 0 이상이면 - do..