📌 문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/67256
✅ 내 풀이(Success) :
🧐 Review:
키패드의 가운데 열인 [2, 5, 8, 0]을 누르는 경우를 어떻게 구현하느냐가 중요한 문제였다. 거리를 계산하기 위해서 어떻게 해야 될지 고민을 잠깐 해봤는데, 2차원 배열의 좌표 쌍(x, y)을 이용하면 쉽게 구현할 수 있을 것 같다는 생각이 들었다. 하지만 2차원 배열에서 숫자에 해당하는 좌표 쌍을 찾기까지 배열을 탐색하는 과정이 필요할 것 같았다. 입력값 numbers의 크기가 최대 1000으로 이중 for 문까지는 시간 복잡도에서 안정권이지만 3중 for문의 경우는 시간 초과가 발생할 수 있을 것 같다는 생각이 들었다. 그래서 키패드를 배열로 구현하는 것이 아닌 딕셔너리를 이용해서 구현해야겠다는 생각에 위와 같이 코드를 작성했고, 그 아이디어를 바탕으로 나머지 코드를 구현하는 것은 어렵지 않았다.
문제를 풀고 나서 바로 프로그래머스에서 제공하는 '다른 사람의 풀이'를 확인해봤는데, 가장 많은 좋아요를 받은 풀이가 내 풀이와 정말 많이 비슷했다. 변수명과 변수의 개수 빼고는 완전히 같은 코드라고 말할 수 있을 것 같다. 이 문제를 처음 본 것이 언제인지도 기억이 나질 않는데 매번 어떻게 풀어야 할지 감이 오질 않았지만, 다른 사람의 코드를 확인하지 않고 그냥 포기했었던 문제였다. 그런데 오늘 내가 떠올린 아이디어로 코드를 구현해보니 의외로 쉽게 풀리는 것을 보고 그동안 문제 경험이 나를 조금씩이라도 성장시켰다는 생각이 들었다. 속도는 조금 느릴지 모르지만 올바른 방향으로 나아가고 있다는 생각이 든다. 앞으로 더 열심히 해야겠다.
'알고리즘 문제 풀이: 파이썬 > Programmers' 카테고리의 다른 글
[프로그래머스] 푸드 파이터 대회 (0) | 2022.11.04 |
---|---|
[프로그래머스] 피로도 (0) | 2022.10.29 |
[프로그래머스] 옹알이 (2) (0) | 2022.10.27 |
[프로그래머스] 햄버거 만들기 (0) | 2022.10.27 |
[프로그래머스] 비밀 지도 (0) | 2022.10.26 |
댓글