본문 바로가기

카카오4

[코딩 테스트] 프로그래머스 - 블록 이동 (2020 Kakao) in Python "0"과 "1"로 이루어진 지도인 board가 주어질 때, 로봇이 (N, N) 위치까지 이동하는데 필요한 최소 시간을 return 하도록 solution 함수를 완성! 더 자세한 정보 - programmers.co.kr/learn/courses/30/lessons/60063 풀이 - 2차원 배열에서 '이동'하는 문제는 너비 우선 탐색 (BFS) 방법이 유용할 때가 많다. - 가능한 주변 좌표에 가보고, 안되면 다시 돌아와 다른 곳으로 가는 로직이 FIFO, 선입선출, 큐의 것과 비슷하기 때문이다. - 언제나 중요한 점! 구현이 복잡해지면, 기능 별로 따로 따로 메소드를 구현하는 것이 상당히 유용하다. 코드 구현 def possible(position, board): next_pos = [] positio.. 2021. 3. 10.
[코딩테스트] 프로그래머스 - 자물쇠와 열쇠 (2020 Kakao) in Python 열쇠를 나타내는 2차원 배열 key (N X N) 와 자물쇠를 나타내는 2차원 배열 lock (M X M)이 매개변수로 주어질 때, 열쇠로 자물쇠를 열수 있으면 true를, 열 수 없으면 false를 return 하도록 solution 함수를 완성. 열쇠는 90도씩 돌릴 수 있고, 열쇠와 자물쇠의 홈은 0과 1로 표시됨. programmers.co.kr/learn/courses/30/lessons/60059 문제 풀이는 프로그래머스 수업을 바탕으로 합니다. 풀이 - M과 N이 20 이하로 주어지기 때문에, 여러 번 회전하고 확장시켜도 효율성에 큰 영향은 없을 것이다. - 따라서 열쇠를 90도로 4번 회전시켜 모든 경우의 수를 확인 - 열쇠의 일부분만 자물쇠를 여는 데 쓰일 수도 있으므로, 자물쇠의 크기를.. 2021. 3. 8.
[코딩 테스트] 프로그래머스 - 괄호 변환 (2020 Kakao) in Python '('와 ')'로만 이루어진 문자열 s에서, 괄호들을 올바르게 배치해서 반환할 것. 이 문제는 문제 자체에서 알고리즘을 이미 나열해놨다. 이에 맞게 구현만 하면 되는 문제. 재귀적인 성질을 갖고 있다. programmers.co.kr/learn/courses/30/lessons/60058 문제 풀이 '균형잡힌 괄호 문자열' - (와 ) 개수가 맞을 때 '올바른 괄호 문자열' - 균형잡힌 괄호 문자열이면서, 짝도 맞을 때 1. 입력이 빈 문자열인 경우, 빈 문자열을 반환합니다. 2. 문자열 w를 두 "균형잡힌 괄호 문자열" u, v로 분리합니다. 단, u는 "균형잡힌 괄호 문자열"로 더 이상 분리할 수 없어야 하며, v는 빈 문자열이 될 수 있습니다. 3. 문자열 u가 "올바른 괄호 문자열" 이라면 문자열.. 2021. 3. 8.
[코딩테스트] 문자열 압축 (2020 Kakao) in Python 압축할 문자열 s가 매개변수로 주어질 때, 1개 이상 단위로 문자열을 잘라 압축하여 표현한 문자열 중 가장 짧은 것의 길이를 return 하도록 solution 함수를 완성. programmers.co.kr/learn/courses/30/lessons/60057 풀이는 프로그래머스 수업 내용을 바탕으로 구현했습니다. 문제 풀이 - 문자열을 자르는 단위 (step)는, 1개부터 문자열 길이 전체까지 된다 (technically (문자열 길이 // 2 +1) 까지!) - 각 step마다 문자열을 검사하고 압축된 형태로 변환, - 이전에 했던 압축 형식과 길이를 비교하여, 더 짧은 것을 answer에 저장 - 결국 완전탐색처럼 구현하면 되는 것이다. 파이썬 구현 def solution(s): answer = .. 2021. 3. 8.