https://school.programmers.co.kr/learn/courses/30/lessons/42888 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2019 KAKAO BLIND RECRUITMENT Level 2 문제다. Level 1만큼이나 간단한 문제다. key로 사용자 아이디가 들어가고, value로 닉네임이 저장되는 해시맵을 통해 풀었다. 채팅방에 들어온 후 닉네임을 한번도 바꾸지 않거나, 채팅방에 들어온 후 닉네임을 바꾸는 사용자가 있을 수 있으므로 주어진 record의 가장 첫 단어가 Enter이거나 Change인 경우에 map에..
https://school.programmers.co.kr/learn/courses/30/lessons/42889 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2019 KAKAO BLIND RECRUITMENT Level 1 문제다. 스테이지별로 몇명의 사용자가 도전했는지(fail[i][1]), 몇명의 사용자가 아직 클리어하지 못했는지(users[i]) 저장할 배열을 만든다. 현재 어떤 사용자가 4 스테이지에 있다면, 이미 1, 2, 3 스테이지를 거쳐간 것이다. 이를 활용해서 stages의 원소 하나하나 탐색해 가며 fail 배열의 1~stages[i..
https://school.programmers.co.kr/learn/courses/30/lessons/60063 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2020 KAKAO BLIND RECRUITMENT Level 3 문제다. BFS로 최단 거리를 찾는 문제와 동일한 형태다. 다만 회전하는 케이스가 다양해서 구현하는게 좀 복잡하다. 로봇이 가로로 있을 때는 차지하는 두칸 중 왼쪽 칸을 기준으로, 세로로 있을 때는 차지하는 두칸 중 위쪽 칸을 기준으로 보고 visit를 확인하고 변경해줄 때도 기준이 되는 칸만 검사했다. 똑같은 칸을 지나가더라도 가..
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의 원소 하나하나씩 돌면서 원소..