(Week3)[BFS] 타겟넘버

2022. 6. 20. 16:11·알고리즘_코딩테스트/주간코딩 스터디 (주코스)

 

주간 코딩스터디 때 푼 문제들을 정리하고 있습니다. 구체적인 문제에 대한 정보는 게시글 내 링크를 살펴봐주세요

소요시간: 15분  (풀었던 문제)

1. 문제 설명

https://programmers.co.kr/learn/courses/30/lessons/43165

 

코딩테스트 연습 - 타겟 넘버

n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수

programmers.co.kr

사용할 수 있는 숫자가 담긴 배열에서 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟넘버 만들기

2. 접근 방식

  • 숫자에 대해 할 수 있는 것은 더하거나 빼는 두 가지 경우인데, 이를 재귀나 이렇게 풀게 되면 2의 제곱으로 커짐
  • 따라서 BFS의 방법으로 문제를 풀어야 한다. (별도의 리스트를 만들어서 모든 변화 과정을 기록하기)
  • 코드가 진행될 수록 2의 제곱으로 경우의 수가 생성됨.

3. 코드

def solution(numbers, target):
    answers = [0]
    for i in numbers:
        tmp = []
        for j in answers:
            tmp.append(j+i)
            tmp.append(j-i)
        answers = tmp
    return answers.count(target)
n = [1, 1, 1, 1, 1]
t = 3
출력
# answers [0]
# tmp [1, -1]
# answers [1, -1]
# tmp [2, 0, 0, -2]
# answers [2, 0, 0, -2]
# tmp [3, 1, 1, -1, 1, -1, -1, -3]
# answers [3, 1, 1, -1, 1, -1, -1, -3]
# tmp [4, 2, 2, 0, 2, 0, 0, -2, 2, 0, 0, -2, 0, -2, -2, -4]
# answers [4, 2, 2, 0, 2, 0, 0, -2, 2, 0, 0, -2, 0, -2, -2, -4]
# tmp [5, 3, 3, 1, 3, 1, 1, -1, 3, 1, 1, -1, 1, -1, -1, -3, 3, 1, 1, -1, 1, -1, -1, -3, 1, -1, -1, -3, -1, -3, -3, -5]

4. 코멘트

  • 이전에 풀었던 문제였기 때문에 비교적 빠르게 아이디어를 얻어 풀 수 있었다.
  • 그런데 아마 이전에 다른 해설을 보고 풀었던 것으로 기억하는데, 뭐 어쨌든 지금은 안 보고 풀 수 있으니까...
저작자표시 비영리 변경금지 (새창열림)

'알고리즘_코딩테스트 > 주간코딩 스터디 (주코스)' 카테고리의 다른 글

(Week4)[그리디] 큰 수 만들기  (0) 2022.07.07
(Week3)[구현] 순위검색  (0) 2022.06.20
(Week2)[구현] 오픈채팅방  (0) 2022.06.20
(Week2)[재귀] 하노이의 탑  (0) 2022.06.20
(Week1)[N진법] n진수 게임  (0) 2022.06.20
'알고리즘_코딩테스트/주간코딩 스터디 (주코스)' 카테고리의 다른 글
  • (Week4)[그리디] 큰 수 만들기
  • (Week3)[구현] 순위검색
  • (Week2)[구현] 오픈채팅방
  • (Week2)[재귀] 하노이의 탑
논곰
논곰
현재 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)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
논곰
(Week3)[BFS] 타겟넘버
상단으로

티스토리툴바