https://school.programmers.co.kr/learn/courses/30/lessons/60062 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2020 KAKAO BLIND RECRUITMENT Level 3 문제다. DFS를 통해 가장 긴 거리를 갈 수 있는 친구부터 취약 지점을 점검한다. 그러기 위해서는 dist를 내림차순 정렬해야 하지만, 내림차순(Collections.reverseOrder()) 정렬은 int 자료형으로는 불가능하므로 (Integer로 변환해야 함) 먼저 오름차순 정렬하고, 뒤에서부터 0까지 DFS를 진행했다. D..
https://school.programmers.co.kr/learn/courses/30/lessons/60061 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2020 KAKAO BLIND RECRUITMENT Level 3 문제다. 특별한 알고리즘 적용 없이 조건을 잘 검사하여 기둥이랑 보를 설치/삭제하면 되는 구현 문제다. 삭제하는 작업이 들어올 경우 삭제하면 안되는 여러 경우가 있기 때문에 (기둥 아래에 보가 있는지, 기둥 위 오른쪽 보가 양쪽 보와 연결되어 있는지 등등..) 이를 어떻게 다 검사할지 어려웠다. 먼저 삭제하는 작업이 들어올 경우 바..
https://school.programmers.co.kr/learn/courses/30/lessons/60058 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2020 KAKAO BLIND RECRUITMENT Level 2 문제다. 먼저 Stack을 통해 문자열 p가 올바른 괄호 문자열인지 판단한다. (isCorrect 함수를 통해) 만약 올바른 괄호 문자열이라면 p를 그대로 반환하고, 올바른 괄호 문자열이 아니라면 올바른 괄호 문자열로 변환하는 setBracket 함수로 변환한 값을 반환한다. 문제에 나와있는 과정에 따라 문자열을 u, v로 분리한다..
https://school.programmers.co.kr/learn/courses/30/lessons/60057 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2020 KAKAO BLIND RECRUITMENT Level 2 문제다. 압축한 문자열 중 가장 짧은 길이를 찾기 위해 1부터 직접 압축하여 문자열을 생성하고 길이를 비교한다. 문자열 길이의 반 이상 단위로 압축할 수는 없으므로 1부터 문자열 길이의 반까지만 압축한다. 압축할 단위의 길이 i만큼 문자열을 자르고(delim), 그 뒤의 문자열이 자른 문자열로 시작하는지 확인한다. 자른 문자열로 시..
https://school.programmers.co.kr/learn/courses/30/lessons/72414#fnref1 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2021 KAKAO BLIND RECRUITMENT Level 3 문제다. 문제를 접근할 때까지 꽤나 시간이 걸렸던 문제인데, 접근을 잘 한다면 그 후에는 어렵지 않다. 먼저 각 초마다 몇명의 사람이 재생하고 있는지를 저장할 배열 time[]을 생성한다. 예를 들어 time[5] = 3 일 경우 5초에 3명의 사람이 영상을 재생하고 있는 것이다. logs의 원소 하나하나씩 돌면서 원소..
https://school.programmers.co.kr/learn/courses/30/lessons/72413 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2021 KAKAO BLIND RECRUITMENT Level 3 문제다. 처음엔 정확성 테스트만 있는 줄 알고 제일 익숙한 DFS로 풀었었다. 하나의 DFS 메소드에서 합승하는 경우, a 혼자 가는 경우, b 혼자 가는 경우 각각 나눠 재귀함수를 호출했었고 정확성은 다 맞았지만 효율성에서 틀렸었다..ㅎ ↓ DFS로 구현한 코드 더보기 import java.util.*; class Solution..
https://school.programmers.co.kr/learn/courses/30/lessons/92344 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2022 KAKAO BLIND RECRUITMENT Level 3 문제다. 당연히 문제를 보자마자 브루트포스를 생각했지만 Level 3 짜리 문제기 때문에 시간 초과가 날 것이라고 생각했다. 그 후로 누적합(prefix sum)을 적용해보려고 했는데, 2차원 배열의 누적합은 어떻게 처리해야 할지 몰라서 결국 카카오테크에 있는 코테 해설을 참고했다. https://tech.kakao.com/2022..
https://school.programmers.co.kr/learn/courses/30/lessons/72411 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2021 KAKAO BLIND RECRUITMENT의 Level 2 문제다. 동일한 코딩테스트의 Level 2 문제인 순위 검색을 풀고 나니 꽤 비슷하게 느껴져서 빠르게 풀었다. 두 문제 동일하게 주어진 문자열이 가능한 모든 조합을 DFS를 통해 생성한다. 순위 검색은 이분 탐색을 해서 결과값을 구하지만, 이 문제는 map의 value를 탐색해 결과값을 구하는 것이 다르다. 처음엔 메뉴를 주문한 ..