Algorithm
-
2022 KAKAO BLIND RECRUITMENT) 주차 요금 계산Algorithm/프로그래머스 2022. 8. 4. 14:32
https://school.programmers.co.kr/learn/courses/30/lessons/92341?language=javascript 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분할 정복(Divide and conquer algorithm)을 이용하여 문제에서 구해야할 값들을 세분화 시킬 수 있습니다. 1. 주차 시간 2. 주차 시간을 요금으로 환산 3. 정렬 function solution(fees, records) { var answer = []; const check = new Map(); const sum = new Map();..
-
2018 KAKAO BLIND RECRUITMENT) [3차] 방금그곡 - Javascript 풀이Algorithm/프로그래머스 2022. 8. 2. 14:30
입력으로 주어진 악보정보에서 '#'이 붙은 경우 문자열에서는 2칸을 차지하고 있지만 문제 해석에서는 하나로 이해하고 접근해야 하기 때문에 한글자로 바꿔주면 문제를 더 쉽게 풀 수 있었습니다. 우리는 인자 m 과 musicinfo의 3번째 인덱스 값인 멜로디를 똑같은 방식으로 변환해주어야 하기 때문에 이 부분은 외부함수로 두고 사용하였습니다. function convert(str) { if (str.includes("C#")) str = str.replace(/C#/g, "c"); if (str.includes("D#")) str = str.replace(/D#/g, "d"); if (str.includes("F#")) str = str.replace(/F#/g, "f"); if (str.includes(..
-
2018 KAKAO BLIND RECRUITMENT) [1차] 프렌즈4블록 - Javascript 풀이Algorithm/프로그래머스 2022. 8. 1. 16:13
https://school.programmers.co.kr/learn/courses/30/lessons/17679?language=javascript 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명이 워낙 친절하게 되어있어서 알고리즘을 구현하는데에는 크게 어려움이 없었던 문제였습니다. 재귀함수를 이용하여 매번 업데이트 되는 board 배열을 인자로 받았습니다. function solution(m, n, board) { // m: 높이 n: 폭 board = board.map((v) => v.split("")); let answer = 0; let..
-
2019 KAKAO BLIND RECRUITMENT) 후보키 - Javascript 풀이Algorithm/프로그래머스 2022. 8. 1. 14:26
https://school.programmers.co.kr/learn/courses/30/lessons/42890?language=javascript 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제의 핵심은 유일성을 만족하지 못하는 index를 추려내어 그것들의 조합으로 최소성을 만족하는 후보키를 구하는 것입니다. 만약 유일성을 만족하지 못하는 항목이 5개 있다면 2개 ~5개의 조합을 전부 확인하고 그 과정에서 최소성을 만족하는지, 후보키로 등록할 수 있는지를 탐색하는 과정으로 코드를 작성하였습니다. function solution(relation) ..
-
2021 KAKAO BLIND RECRUITMENT) 순위 검색 - Javascript 풀이Algorithm/프로그래머스 2022. 7. 31. 15:11
https://school.programmers.co.kr/learn/courses/30/lessons/72412?language=javascript 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제에서는 정확성과 효율성 테스트가 각각 있기 때문에 입력으로 주어진 배열이 굉장히 클 때 어떻게 효과적으로 탐색을 할지 고민이 많이 필요한 문제입니다. 개인적으로는 프로그래머스 2단계 문제 중에 가장 어려웠던 문제라 생각이 듭니다. 그동안은 아무리 문제가 어려워도 검색을 해가면서까지 다른 풀이를 참고하지는 않았는데 이번 문제에서는 여러모로 검색의 도움을 많이 ..
-
2019 카카오 개발자 겨울 인턴십) 튜플 - Javascript 풀이Algorithm/프로그래머스 2022. 7. 27. 20:13
https://school.programmers.co.kr/learn/courses/30/lessons/64065?language=javascript 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제를 읽어보면 코드를 아주 작성하기 쉬운 조건을 하나 줬습니다. "중복되는 원소가 없는" 중복되는 원소가 없을 경우, 부분집합들의 집합 내에서 튜플을 구성하는 숫자 개수의 내림차순으로 튜플 순서가 결정되게 됩니다. 예를 들어 집합이 {{2}, {2, 1}, {2, 1, 3}, {2, 1, 3, 4}} 이렇게 주어졌다고 가정합시다. 원소 숫자의 개수를 세어보면 ..
-
2020 카카오 인턴십) 수식 최대화 - Javascript 풀이Algorithm/프로그래머스 2022. 7. 27. 13:52
https://school.programmers.co.kr/learn/courses/30/lessons/67257?language=javascript 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제에서 인자로 들어가는 expression 은 문자열이기 때문에 연산자와,숫자 별로 나뉘어 배열화 시키면 다음과 같습니다. ( 정규 표현식을 사용하면 쉽게 나눌 수 있습니다. ) const exp = "100-200*300-500+20".match(/\d+|\+|\*|\-/g); 2. 연산자를 실행할 우선순위를 구해야합니다. 이 문제에서는 연산자의 최고 ..
-
2021 카카오 채용연계형 인턴십) 거리두기 확인하기 - Javascript 풀이Algorithm/프로그래머스 2022. 7. 26. 01:12
https://school.programmers.co.kr/learn/courses/30/lessons/81302?language=javascript 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드를 짜기 위해 제가 생각한 순서는 다음과 같습니다. 1. 원하는 좌표를 뽑기 쉽게 주어진 배열을 대기실 방 별로 쪼개고, 문자열을 배열화 시키기 => 2중 for문을 돌면서 문자열을 spit("") 시킵니다. 2. 각 대기실 방 별로 for문을 돌면서 P와 P사이의 맨하탄 거리가 2이하인 좌표점의 쌍을 찾기 => 변수 ch를 배열로 선언하고 P가 있는 좌표를..