KAKAO BLIND

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

[프로그래머스] 표 병합

📙 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/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/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..

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

[프로그래머스] 문자열 압축

📙 1. 문제 Link : https://school.programmers.co.kr/learn/courses/30/lessons/60057 문제 설명 풀이 1 : 실패(테스트 케이스는 통과 but 채점에서 다수 실패) function solution(s) { var answer = Infinity; const howManyDup = (i,unit,cnt) => { if(s.substring(i,i+unit)===s.substring(i+unit,i+unit+unit)){ // 뒤와 동일하다면 return howManyDup(i+unit,unit,cnt+1); }else{ return cnt; } } const getCount = (s,unit) => { const arr = []; let str = "..

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

[프로그래머스] 순위 검색

📙 1. 문제 Link : https://school.programmers.co.kr/learn/courses/30/lessons/72412?language=javascript [프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr](https://school.programmers.co.kr/learn/courses/30/lessons/72412?language=javascript) 문제 설명 🌈 2.시작하며 풀이 과정 1 (시간 초과 풀이) 처음에는 객체를 사용하려다가, 객체를 사용하여 javascript,css.. 등 각각 매칭시키면 javascript-ba..

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

[프로그래머스] 양궁대회

📙 1. 문제 Link : https://school.programmers.co.kr/learn/courses/30/lessons/92342 문제 설명 카카오배 양궁대회가 열렸습니다. 라이언은 저번 카카오배 양궁대회 우승자이고 이번 대회에도 결승전까지 올라왔습니다. 결승전 상대는 어피치입니다. 카카오배 양궁대회 운영위원회는 한 선수의 연속 우승보다는 다양한 선수들이 양궁대회에서 우승하기를 원합니다. 따라서, 양궁대회 운영위원회는 결승전 규칙을 전 대회 우승자인 라이언에게 불리하게 다음과 같이 정했습니다. 어피치가 화살 n발을 다 쏜 후에 라이언이 화살 n발을 쏩니다. 점수를 계산합니다. 과녁판은 아래 사진처럼 생겼으며 가장 작은 원의 과녁 점수는 10점이고 가장 큰 원의 바깥쪽은 과녁 점수가 0점입니다...

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

[프로그래머스] 이모티콘 할인행사

📙 1. 문제 Link : https://school.programmers.co.kr/learn/courses/30/lessons/150368 문제 설명 카카오톡에서는 이모티콘을 무제한으로 사용할 수 있는 이모티콘 플러스 서비스 가입자 수를 늘리려고 합니다. 이를 위해 카카오톡에서는 이모티콘 할인 행사를 하는데, 목표는 다음과 같습니다. 이모티콘 플러스 서비스 가입자를 최대한 늘리는 것. 이모티콘 판매액을 최대한 늘리는 것. 1번 목표가 우선이며, 2번 목표가 그 다음입니다. 이모티콘 할인 행사는 다음과 같은 방식으로 진행됩니다. n명의 카카오톡 사용자들에게 이모티콘 m개를 할인하여 판매합니다. 이모티콘마다 할인율은 다를 수 있으며, 할인율은 10%, 20%, 30%, 40% 중 하나로 설정됩니다. 카카..

피터s
'KAKAO BLIND' 태그의 글 목록