hyeon.s
개발로그
hyeon.s
전체 방문자
오늘
어제
  • 분류 전체보기 (151) N
    • Web 및 인프라 (1)
      • Web (1)
      • Terraform (2)
      • Docker (1)
    • Android (1)
      • 공부 (28)
      • 트러블슈팅 (12)
      • 프로젝트 개발 (10)
      • Compose (2)
      • 우테코 프리코스 (0)
    • Server (6) N
      • 공부 (1)
      • Spring (5) N
    • 알고리즘 (68)
      • 문제풀이 (C++,Kotlin) (54)
      • 공부 (13)
    • 디자인 (3)
      • UI (3)
    • Language (5)
      • Kotlin (5)
      • JAVA (0)
    • IT 동아리 (8)
      • UMC 3기 (Android) (7)
      • Sopt 32기 (Android) (1)

Github

글쓰기 / 관리자
hELLO · Designed By 정상우.
hyeon.s

개발로그

[프로그래머스/Kotlin] Lv2 타겟 넘버 : BFS
알고리즘/문제풀이 (C++,Kotlin)

[프로그래머스/Kotlin] Lv2 타겟 넘버 : BFS

2023. 9. 7. 21:49
728x90

문제 설명

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

-1+1+1+1+1 = 3
+1-1+1+1+1 = 3
+1+1-1+1+1 = 3
+1+1+1-1+1 = 3
+1+1+1+1-1 = 3

사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 return 하도록 solution 함수를 작성해주세요.

문제 풀이

코드

import java.util.*

class Solution {
    fun solution(numbers: IntArray, target: Int): Int {
        val queue:Queue<Pair<Int,Int>> = LinkedList()
        var answer = 0

        queue.offer(Pair(numbers[0],0))
        queue.offer(Pair(-numbers[0],0))

        while(queue.isNotEmpty()){
            var cur = queue.peek()
            queue.poll()
            if (cur.second == numbers.size-1) {
                if (cur.first==target){
                    answer ++
                }
                continue
            }
            queue.offer(Pair((cur.first+numbers[cur.second+1]),cur.second+1))
            queue.offer(Pair((cur.first-numbers[cur.second+1]),cur.second+1))
        }
        return answer
    }
}
728x90
저작자표시

'알고리즘 > 문제풀이 (C++,Kotlin)' 카테고리의 다른 글

[BOJ/Kotlin] 1260번 DFS와 BFS : 그래프  (0) 2023.09.10
[BOJ/Kotlin] 2583번 영역 구하기 : BFS  (0) 2023.09.08
[프로그래머스/Kotlin] Lv2 소수찾기 : 완전탐색  (0) 2023.09.05
[프로그래머스/Kotlin] Lv2 가장 큰 수 : 정렬  (0) 2023.09.03
[프로그래머스/Kotlin] Lv2 프로세스 : Queue  (0) 2023.08.31
'알고리즘/문제풀이 (C++,Kotlin)' 카테고리의 다른 글
  • [BOJ/Kotlin] 1260번 DFS와 BFS : 그래프
  • [BOJ/Kotlin] 2583번 영역 구하기 : BFS
  • [프로그래머스/Kotlin] Lv2 소수찾기 : 완전탐색
  • [프로그래머스/Kotlin] Lv2 가장 큰 수 : 정렬
hyeon.s
hyeon.s
이유있는 코드를 짜자

티스토리툴바