본문 바로가기

알고리즘 스터디

(35)
[Programmers] 호텔 대실 - Javascript INDEX https://school.programmers.co.kr/learn/courses/30/lessons/155651 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Solution 시간은 24시간 내로 주어지고 분 단위로 주어집니다. 좀 무식한 접근 방식을 선택했습니다. 분을 하나의 배열 원소로 변환하고 대실 시간만큼의 범위를 카운팅합니다. 24시간은 분으로 변환하면 24 X 60 = 1440 입니다. const roomArr = new Array(60 * 24).fill(0); 처음 주어지는 시간이 15:00 ~ 17:00 라고 한다면 분으로 ..
[Programmers] 무인도 여행 - Javascript INDEX https://school.programmers.co.kr/learn/courses/30/lessons/154540 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Solution 그래프 문제는 보통 DFS 아니면 BFS 로 푸는 문제입니다. 이 문제 같은 경우에는 1부터 9까지의 자연수 블록이 연결된 영역을 계속 찾다가 "X" 혹은 벽을 만나면 탐색을 종료하는 알고리즘이기 때문에 DFS 를 사용할 수 있습니다. 주의해야 할 포인트는, 방문한 무인도(노드)는 꼭 다시 방문하지 말아야 한다는 점입니다. 왜냐하면 이미 탐색된 무인도는 연결된 영역이 ..
[Programmers] 요격 시스템 - Javascript INDEX https://school.programmers.co.kr/learn/courses/30/lessons/181188 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Solution 요격의 위치는 실수도 가능합니다. 그리고 주어지는 값 targets는 개구간(s부터 e까지)을 의미하며 s와 e 지점에서 요격하더라도 해당 미사일을 요격할 수 없습니다. 모든 미사일을 요격할 수 있는 최소한의 요격 횟수를 구하는 문제입니다. 저는 한 개구간과 다른 개구간의 단절이 발생하는 지점을 요격횟수가 추가되는 지점이라 생각했습니다. 예를 들어 [1,3], [3, ..
[Programmers] 카카오 인턴십키패드 누르기 - Javascript INDEX https://school.programmers.co.kr/learn/courses/30/lessons/67256 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Solution 휴대전화 키패드에서 왼쪽 열 [1,4,7,*] 은 왼손으로, 오른쪽 열 [3,6,9,#] 은 오른손으로 입력하고 가운데 열 [2,5,8,0] 은 왼손과 오른손에서 거리가 가까운 손으로 터치하되, 같은 거리면 주어진 hand로 터치를 합니다. 키패드 간의 거리 계산을 위해 좌표 개념을 이용합니다. 숫자 1을 원점 [0, 0]으로 해서 가로와 세로 좌표로 모든 키패드에 있는..
[Programmers] 2022 KAKAO BLIND RECRUITMENT신고 결과 받기 - Javascript INDEX https://school.programmers.co.kr/learn/courses/30/lessons/92334 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Solution HashMap 구조를 활용해서 풀어야 할 것 같은 느낌이 듭니다. 우선 정답을 담을 Array 를 만듭니다. let answer = new Array(id_list.length).fill(0); 신고당한 녀석이 아닌, 신고를 한 녀석이 받을 메일 개수를 카운트 할 배열입니다. 배열은 순서가 중요합니다. 예를들어 id_list 에 [muzi, frodo, apeach, n..
[Programmers] 기사단원의 무기 - Javascript INDEX https://school.programmers.co.kr/learn/courses/30/lessons/136798 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Solution 약수를 구하는 알고리즘을 구현하는게 핵심입니다. 예를 들어 number 가 4인 경우 1, 2, 3, 4의 각 약수를 구해 Array 에 담는다면 단순하겠지만 시간초과에 걸릴겁니다. number의 약수라는건 그 약수들의 곱으로 number 를 만들 수 있다는 의미이므로 1부터 시작해서 만들 수 있는 배수의 개수를 세주었습니다. number 가 4인 경우, [0, 0, ..
2022 KAKAO TECH INTERNSHIP - 성격 유형 검사하기 INDEX https://school.programmers.co.kr/learn/courses/30/lessons/118666 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Solution 저는 최대한 코드를 한눈에 알아보기 쉽게 작성하는 걸 좋아합니다. 이번 문제도 알아보기 쉽고 단순한 코드로 작성했습니다. 총 16가지의 성격 유형이 있고, 주어지는 대답과 그에 따른 점수표를 완성하여 조건에 맞는 성격유형을 반환해야 합니다. survey의 각 원소는 앞에서부터 비동의에 대한 유형, 동의에 대한 유형 순서로 이루어져 있습니다. choices는 각 항목에 ..
2023 KAKAO BLIND RECRUITMENT-개인정보 수집 유효기간 INDEX https://school.programmers.co.kr/learn/courses/30/lessons/150370 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Solution 주어지는 오늘 날짜와 계약한 날짜의 차이를 구해서 약관기한보다 초과된 계약번호를 return 하면 됩니다. 문제에서 모든 달은 28일까지 있다고 강력한 힌트를 주었습니다. 그럼 오늘 날짜를 일로 환산하고 계약일자를 일자로 환산해서 이 둘의 차이를 약관기한 * 28 과 비교하면 됩니다. function solution(today, terms, privacies) { le..