코딩 테스트/프로그래머스

코딩 테스트/프로그래머스

[프로그래머스] 개인정보 수집 유효기간

📙 1. 문제 Link : https://school.programmers.co.kr/learn/courses/30/lessons/150370 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 풀이 1 : 내 풀이 풀이 과정 1. 각 개인정보 별 유효기간을 구한다. (privacies와 terms의 일치하는 타입 이용) 2. 1에서 구한 유효기간 날짜와 오늘 날짜를 비교한다. (오늘 날짜가 더 이후라면, answer배열에 push) 1번, 유효기간 구하는 함수 datePlus를 만들었다. 시작 날짜 startDate와 더할 기간 period를 구한..

코딩 테스트/프로그래머스

[프로그래머스] 수식 최대화

📙 1. 문제 Link : https://school.programmers.co.kr/learn/courses/30/lessons/67257 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 풀이 1 : 내 풀이 풀이 과정 expression은 문자열이므로 split을 이용하여 숫자를 분리하고, filter를 이용해 문자(연산자)를 분리한다. split(/*+-/g) : 정규표현식을 이용하여 *혹은 + 혹은 -을 기준으로 숫자를 분리한다. filter(it=>isNaN(it)) : 숫자가 아닌 것을 filter하여 *,+,-을 분리한다. 37번 째..

코딩 테스트/프로그래머스

[프로그래머스] 표 병합

📙 1. 문제 Link : https://school.programmers.co.kr/learn/courses/30/lessons/150366 문제 설명 풀이 1 풀이 과정 : Union-Find알고리즘을 이용한 문제 1. cell배열과 parent 배열 cell 배열 : 51x51 크기의 2차원 배열로, 각 셀에 할당된 문자열 값을 저장 parent 배열 : 51x51 크기의 2차원 배열로, 각 셀의 부모 셀(병합이 일어난 경우 해당 셀이 속한 그룹의 대표 셀)의 좌표를 저장 2. 각 기능들을 함수화해주어, 추상화하였다. - iterateAll(callbackFn) : 모든 셀에 대해 주어진 콜백 함수를 실행 - find(coord) : 좌표 [r,c]를 찾는 - isSameCoords([r,c],p..

코딩 테스트/프로그래머스

[프로그래머스] 코딩테스트 공부

📙 1. 문제 Link : https://school.programmers.co.kr/learn/courses/30/lessons/118668 문제 설명 풀이 1 : 내 풀이 풀이 과정 1. problems배열을 순환하며 [0], [1] 즉 alp_req와 cop_req가 가장 큰 값을 찾는다. 2. 내 알고력과 코딩력이 필요한 최대 점수를 넘어설 수 있기에, 문제의 필요한 최대 점수를 targetAlp와 targetCop에 각각 저장한다. 3. 2차원 배열 visit를 만든다. 이는 현재 가진 코딩력과 알고력을 가지기 위한 시간의 최솟값을 저장하는 배열이다. 4. 모든 경우를 탐색하기 위해 DFS를 돌린다. 인자 : alp, cop, cnt, problems이다. 4.1. 만약, 현재 내 알고력알고력 ..

코딩 테스트/프로그래머스

[프로그래머스] 표현 가능한 이진트리

📙 1. 문제 Link : https://school.programmers.co.kr/learn/courses/30/lessons/150367 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 풀이 1 : 런타임 에러 풀이 과정 1. 2진수로 변환 : toString(2) 2. 트리로 만들기 : makeTree(), (2**n)-1보다 작은 값이 되면 앞에 0을 붙여줌 3. 각 경우 별 트리의 조건에 성립하는지 판단 -> 트리인지 체크하는 함수 (재귀함수) - "부모 요소가 0일 때, 자식 노드가 1이라면 이진트리 형태가 아니다. 그 외의 형태는 ..

코딩 테스트/프로그래머스

[프로그래머스] 거리두기 확인하기

📙 1. 문제 Link : https://school.programmers.co.kr/learn/courses/30/lessons/81302 문제 설명 풀이 1 : 내 풀이 풀이 과정 1. 맨해튼 거리를 이동 거리에 따라 A, B, C로 구분 2. A : 네 방향으로 2칸 이동 -> 사이에 X가 1개 있다면 지킴 3. B : 대각선으로 이동 -> 사이에 X가 2개 있다면 지킴 3. C : 네 방향으로 1칸 이동 -> 무조건 지키지 않음 function solution(places) { const result = [] const manhatenA = [[2,0],[-2,0],[0,2],[0,-2]] const manhatenB = [[1,1],[1,-1],[-1,1],[-1,-1]] const manha..

코딩 테스트/프로그래머스

[프로그래머스] 방금 그곡

📙 1. 문제 Link : https://school.programmers.co.kr/learn/courses/30/lessons/17683 문제 설명 풀이 1 풀이 과정 1. musininfos를 forEach를 통해 순회하였다. 이 때, 구조분해를 이용하여 startTime(시작 시간), endTime(종료 시간) 등 변수화하였다. 2. C#,D#가 있어서 다음 문자가 #이라면 #과 함께 infoArr 배열에 저장하는 방식으로 하여 #을 묶어서 저장하였다. 3. 2에서 구한 길이와 지속 시간을 이용하여 반복 횟수와 나머지를 구하였다. 4. minusTime 함수를 이용해 시간차를 구한다. minusTime함수는 시간과 분을 분리하여 시간 차이 * 60 + 분 차이를 뺀 결과이다. 5. indexOf를..

코딩 테스트/프로그래머스

[프로그래머스] 후보키

📙 1. 문제 Link : https://school.programmers.co.kr/learn/courses/30/lessons/42890 문제 설명 풀이 1 : DFS 깊이 우선 탐색 풀이 과정 1. 문제를 읽어보면 다른 꼼수 없이 모든 경우의 수를 탐색해야 함을 직감할 수 있다. 그래서 나는 DFS와 BFS 중에 고민했다. 2. 그렇다면 왜 BFS가 아니라 DFS인가? 문제에서 후보 키는 1. 유일성 2. 최소성을 만족시켜야 한다고 했다. 그래서 중간에 두 조건 중 하나라도 만족하지 않으면 stop 하는 알고리즘을 짜기 위해 DFS로 구현하였다. 그러나, 결국 모든 조합을 완성하고, 위 두 조건을 체크하기에 DFS와 BFS는 시간 복잡도가 동일할 것이다. BFS로 구현해도 괜찮으니, DFS와 BFS..

피터s
'코딩 테스트/프로그래머스' 카테고리의 글 목록