diff --git "a/week03/hyewon/BOJ_\354\212\244\355\203\235_\354\210\230\354\227\264.py" "b/week03/hyewon/BOJ_\354\212\244\355\203\235_\354\210\230\354\227\264.py" new file mode 100644 index 0000000..d9bdeca --- /dev/null +++ "b/week03/hyewon/BOJ_\354\212\244\355\203\235_\354\210\230\354\227\264.py" @@ -0,0 +1,25 @@ +n = int(input()) + +arr = [] # 입력 수열 +stack = [] # 진짜 스택 +output = [] # +, - 저장 + +current = 1 + +for _ in range(n): + arr.append(int(input())) + +for x in arr: + while current <= x: + stack.append(current) + output.append('+') + current += 1 + + if stack and stack[-1] == x: + stack.pop() + output.append('-') + else: + print("NO") + exit() + +print('\n'.join(output)) \ No newline at end of file diff --git "a/week03/hyewon/Programmers_\354\212\244\355\203\235\354\234\274\353\241\234_\355\201\220_\352\265\254\355\230\204.py" "b/week03/hyewon/Programmers_\354\212\244\355\203\235\354\234\274\353\241\234_\355\201\220_\352\265\254\355\230\204.py" new file mode 100644 index 0000000..33cb488 --- /dev/null +++ "b/week03/hyewon/Programmers_\354\212\244\355\203\235\354\234\274\353\241\234_\355\201\220_\352\265\254\355\230\204.py" @@ -0,0 +1,30 @@ +def func_a(stack): # 최종 결과 + return stack.pop() + +def func_b(stack1, stack2): + while not func_c(stack1): # = 차있을동안 + item = func_a(stack1) + stack2.append(item) + +def func_c(stack): # 비어 있는 여부 + return (len(stack) == 0) + +def solution(stack1, stack2): + if func_c(stack2): # 비어 있으면 + func_b(stack1, stack2) + + answer = func_a(stack2) + return answer + +# 테스트 케이스 출력 +stack1_1 = [1,2] +stack2_1 = [3,4] +ret1 = solution(stack1_1, stack2_1) + +print("solution 함수의 반환 값은", ret1, "입니다.") + +stack1_2 = [1,2,3] +stack2_2 = [] +ret2 = solution(stack1_2, stack2_2) + +print("solution 함수의 반환 값은", ret2, "입니다.") \ No newline at end of file diff --git "a/week03/hyewon/Programmers_\355\203\200\352\262\237_\353\204\230\353\262\204.py" "b/week03/hyewon/Programmers_\355\203\200\352\262\237_\353\204\230\353\262\204.py" new file mode 100644 index 0000000..0a1fbeb --- /dev/null +++ "b/week03/hyewon/Programmers_\355\203\200\352\262\237_\353\204\230\353\262\204.py" @@ -0,0 +1,21 @@ +def solution(numbers, target): + answer = 0 + + def dfs(index, current_sum): + nonlocal answer + + # 종료 조건 + if index == len(numbers): + if current_sum == target: + answer += 1 + return + + # 현재 숫자를 + 하는 경우 + dfs(index + 1, current_sum + numbers[index]) + + # 현재 숫자를 - 하는 경우 + dfs(index + 1, current_sum - numbers[index]) + + dfs(0, 0) + + return answer \ No newline at end of file