1. 크레인 인형뽑기 게임

2020. 9. 9. 15:10·알고리즘_코딩테스트/프로그래머스_Level1

0. 문제

링크: https://programmers.co.kr/learn/courses/30/lessons/64061

 

코딩테스트 연습 - 크레인 인형뽑기 게임

[[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4

programmers.co.kr

1. 알고리즘 계획

  1. 크레인에서 해당 값을 뽑아냄
  2. basket에 넣음
  3. basket내에서 for문으로 같은 값이 있는지 찾아내서 색출 후 count 추가
  4. 발견 시 다시 한번 두 값을 제거 후 for문 진행

2. 나의 코드

def solution(board, moves):
    basket = []
    for i in moves:
        for j in range(len(board)):
            if board[j][i-1] != 0:
                basket.append(board[j][i-1])
                board[j][i-1] = 0
                break
    return remove(basket, 0) 

# 재귀함수 사용
def remove(basket, count):
    for i, v in enumerate(basket):
        if [v] == basket[i+1:i+2]:
            del basket[i:i+2]
            count += 2
            count = remove(basket, count)
    return count

- 재귀를 사용해서 풀었으나 썩 만족스럽지는 못한 코드

3. 다른 사람의 코드

def solution2(board, moves):
    stack = []
    answer = 0
    for i in moves:
        for j in range(len(board)):
            if board[j][i-1] != 0:
                stack.append(board[j][i-1])
                board[j][i-1] = 0

                if len(stack) > 1:
                    if stack[-1] == stack[-2]:
                        stack.pop(-1)
                        stack.pop(-1)
                        answer += 2
                break
    return answer

-  stacklist를 사용해서 문제를 풀었음. 문제가 의도하는 바와 더 흡사한 느낌.


4. 정리 및 리뷰

- 처음에 내가 생각한 알고리즘과 재귀적 방법을 사용한 것에는 만족스러웠으나, 값을 한 번에 받아서 (basket) 사용한 것이었기에 원래 문제가 의도하는 바와는 약간 다른 점이 있다고 생각.

- 다른 사람의 풀이에서 stack을 사용한 풀이가 더 정확한 느낌이었다고 생각한다.

코드 만족도: ★★★☆☆

'알고리즘_코딩테스트 > 프로그래머스_Level1' 카테고리의 다른 글

6. 2016년  (0) 2020.09.09
5. K번째 수  (0) 2020.09.09
4. 체육복  (0) 2020.09.09
3. 모의고사  (0) 2020.09.09
2. 완주하지 못한 선수  (0) 2020.09.09
'알고리즘_코딩테스트/프로그래머스_Level1' 카테고리의 다른 글
  • 5. K번째 수
  • 4. 체육복
  • 3. 모의고사
  • 2. 완주하지 못한 선수
논곰
논곰
현재 2년 유목하고, 3년 이상 리테일 쪽에서 머신러닝 엔지니어로 잠시 정착 중인 AI 엔지니어입니다.
  • 논곰
    에이아이 유목민
    논곰
  • 전체
    오늘
    어제
    • 분류 전체보기 (200)
      • 기술 견문록 (22)
        • MLOps (8)
        • ProductServing (5)
        • 협업 툴 (3)
        • Error Collecting (2)
        • 컨퍼런스 (1)
        • 자격증 (1)
      • IT 견문록 (10)
        • 추가 학습 정리 (10)
      • 알고리즘_코딩테스트 (162)
        • 프로그래머스_Level1 (40)
        • 백준코딩테스트_단계별문제풀이 (14)
        • 이것이 코딩테스트다 (63)
        • 2021_알고리즘 스터디 (30일) (28)
        • 주간코딩 스터디 (주코스) (17)
      • 독서 견문록 (6)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    알고리즘_스터디
    Level2_PStage
    최단경로
    dfs
    백트랙킹
    mrc
    구현
    파이썬 3
    단계별문제풀이
    MLFlow
    이코테
    부스트캠프_AITech_3기
    dp
    부스트캠프_AITech3기
    다시보기
    프로그래머스
    Level1
    백준
    주간회고
    이진탐색
    기술면접
    U_stage
    정렬
    글또
    그래프이론
    그리디
    ODQA
    Level2
    알고리즘스터디
    python3
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
논곰
1. 크레인 인형뽑기 게임
상단으로

티스토리툴바