일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 백준
- SWiFT
- ftz
- level13
- pwnable.kr
- Stack
- windosw 문자열
- 재귀
- web
- 암호수학
- LoB
- OSI
- System
- C
- Java
- 파이썬
- 자료구조
- War Game
- 미로 탐색 알고리즘
- PHP
- 스택
- 파일 시스템
- ftz level13
- windosws wbcs
- HTML
- 시간복잡도
- 두근두근 자료구조
- c언어
- 큐
- 정렬 알고리즘
Archives
- Today
- Total
나의 기록, 현진록
[Swift] 프로그래머스 코딩테스트 연습 > 깊이/너비 우선 탐색 > 타겟 넘버 본문
Programming/Algorithm & Data Structure
[Swift] 프로그래머스 코딩테스트 연습 > 깊이/너비 우선 탐색 > 타겟 넘버
guswlsdk 2022. 5. 16. 10:20반응형
코딩테스트 연습 - 타겟 넘버
n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수
programmers.co.kr
문제풀이
이진트리와 같이 배열로 주어진 모든 수를 완전 탐색할 수 있도록 하였다. 텍스트로 표현하기에 가시성이 떨어지지만 다음과 같다.
- 4
- 1
- 2
- 1
- -1
- -2
- 1
- -1
- 2
- -1
- 2
- 1
- -1
- -2
- 1
- -1
- 2
- 1
같은 논리를 가진 코드인데 채점 시 한 개의 케이스에 대하여 시간초과였는데 코드를 수정하니 통과되었다.
블로그 포스팅할 때 실행결과 캡처를 위해 다시 채점해보니 통과되었다. 뭐지
코드
시간초과 코드
import Foundation
func solution(_ numbers:[Int], _ target:Int) -> Int {
func dfs(dept: Int, result: Int){
if numbers.count-1 >= dept{
dfs(dept: dept+1, result: result - numbers[dept])
dfs(dept: dept+1, result: result + numbers[dept])
}else{
if result == target{
count += 1
}
}
}
var count = 0
dfs(dept: 0, result: 0)
return count
}
통과 코드
import Foundation
func solution(_ numbers:[Int], _ target:Int) -> Int {
func dfs(dept: Int, result: Int){
if numbers.count-1 < dept{
if result == target{
count += 1
}
return
}
dfs(dept: dept+1, result: result - numbers[dept])
dfs(dept: dept+1, result: result + numbers[dept])
}
var count = 0
dfs(dept: 0, result: 0)
return count
}
차이점이라고는 조건 문의 수정과 return의 유무일텐데 1, 2번 케이스에 대하여 절반 정도의 차이가 난다.
반응형
'Programming > Algorithm & Data Structure' 카테고리의 다른 글
[Swift] 프로그래머스 Summer/Winter Coding(2019) > 멀쩡한 사각형 (0) | 2022.05.18 |
---|---|
[Swift] 프로그래머스 2019 KAKAO BLIND RECRUITMENT > 오픈채팅방 (0) | 2022.05.17 |
[Swift] 2020 KAKAO BLIND RECRUITMENT 문자열 압축 (0) | 2022.05.15 |
[Swift] 프로그래머스 코딩테스트 연습 > 스택/큐 > 프린터 (0) | 2022.05.12 |
[Swift] 프로그래머스 코딩테스트 연습 > 스택/큐 > 기능개발 (0) | 2022.05.11 |