📖 문제
https://programmers.co.kr/learn/courses/30/lessons/77484
💻 코드
def solution(lottos, win_nums):
score_board = {6: 1, 5: 2, 4: 3, 3: 4, 2: 5, 1: 6, 0: 6}
hit = 0
for lotto in lottos:
if lotto in win_nums:
hit += 1
unknown = lottos.count(0)
min_hit = hit
max_hit = unknown + hit
return [score_board[max_hit], score_board[min_hit]]
🙌 한마디
평범한 구현 문제였다. 때론 이렇게 무난해 보이는 문제가 이상하게 어렵게 느껴질 때가 있다. 예전에 풀었던 프로그래머스 '압축' 문제와 이 문제가 그러했다. 왜 그럴까 고민해봤는데, 처음에 어떻게 구현할지 구상하는 단계에서 좀 더 신중해야지 못해서라고 판단했다. 잘못 짜거나 허점이 있는 로직을 고수하며 거기에 매몰되서 억지로 끼워 맞추다 보면 시간은 흐르고, 마음이 촉박해지면서 자꾸 말리는 그런 상황이 발생하더라.
이럴 때일 수록 되새겨야 할 것은, 어차피 구현 문제는 구현만 잘하면 다 풀린다. 즉 특정한 알고리즘 지식이 요구되지 않는다.
구현 문제가 안 풀릴 때는 아래 4가지 경우 중 하나이다.
1. 로직을 짜는 아이디어가 올바르지 않다.
2. 구현된 코드 일부분이 부적절하다.
3. 놓친 요구사항이 있다.
4. 단순 실수다.
보통 코드를 다 짜고 제출했는데 틀리면 4->3->2->1 순으로 체크를 한다. 그렇기에 1번 또는 2번 케이스의 경우 올바르게 고치는데 시간이 더 걸린다. 이 문제와 '압축' 문제 모두 1번, 2번에서 문제가 발생한 케이스였다.
이 점에 유의하면서 구현 문제를 더 수월하게 풀 수 있도록 하자.
'Problem Solving > 📕Programmers' 카테고리의 다른 글
[Programmers] 다단계 칫솔 판매 (Python) (0) | 2021.11.17 |
---|---|
[Programmers] 행렬 테두리 회전하기 (Python) (0) | 2021.11.17 |
[Programmers] 멀리 뛰기 (Python) (0) | 2021.10.20 |
[Programmers] 압축 (Python) (0) | 2021.10.18 |
[Programmers] 2주차_상호평가 (Python) (0) | 2021.10.14 |