N = int(input()) for num in range(1, N+1): num_list = list(map(int, str(num))) num_sum = num + sum(num_list) if num_sum == N: print(num) break if num==N: print(0) ▼ 링크 https://www.acmicpc.net/problem/2231 2231번: 분해합 문제 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 된다. 따라서 245는 256의 생성자가 된다. 물론, 어떤 자연수의 경우에는 생성자가 없을 ..
import itertools N, M = map(int, input().split()) card = list(map(int, input().split())) ans = 0 for i in itertools.combinations(card, 3): card_sum = sum(i) if ans < card_sum and card_sum
T = int(input()) for _ in range(T): floor = [] k = int(input()) n = int(input()) floor = [i for i in range(1, n+1)] for i in range(k): for j in range(1, n): floor[j] += floor[j-1] print(floor[-1]) ▼ 링크 https://www.acmicpc.net/problem/2775 2775번: 부녀회장이 될테야 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다. (1
N = int(input()) stack = [] check = 1 answer = [] possibility = True for i in range(N): num = int(input()) while check
while True: line = input() if line == ".": break stack = [] check = True for ch in line: if ch == "(" or ch == "[": stack.append(ch) elif ch == ")": if len(stack) == 0: check = False break if stack[-1] == "(": stack.pop() else: check = False break elif ch == "]": if len(stack) == 0: check = False break if stack[-1] == "[": stack.pop() else: check = False break if check and len(stack)==0: print("..
첫번째 코드 - 60ms import sys T = int(input()) for _ in range(T): line = sys.stdin.readline() bracket =[] cnt = 0 for ch in line: if cnt 0: bracket.pop() cnt -= 1 else: cnt = -1 break if cnt == 0: print("YES") else: print("NO") 처음에는 단순히 스택만 생각해서 리스트를 만들고 append하고 pop하는 방식으로 구현했는데 뭔가 코드가 더러워져서 다시 짰다. 코드 길이도 훨씬 짧고 시간도 훨씬..
K = int(input()) list = [] for _ in range(K): n = int(input()) if n == 0: if len(list)>0: list.pop() else: list.append(n) print(sum(list)) import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Stack; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(S..
import sys N = int(input()) stack = [] for _ in range(N): line = sys.stdin.readline().split() if line[0] == "push": stack.append(int(line[1])) elif line[0] == "pop": if len(stack)>0: print(stack[-1]) stack.pop() else: print(-1) elif line[0] == "size": print(len(stack)) elif line[0] == "empty": if len(stack) == 0: print(1) else: print(0) elif line[0] == "top": if len(stack) > 0: print(stack[-1]) ..
import sys line = sys.stdin.readline() line = list(line.replace('-', ' ').split()) for num in line: if '+' in num: temp = list(map(int, num.split('+'))) s = sum(temp) line[line.index(num)] = s else: line[line.index(num)] = int(num) #단순 형변환 print(line[0]-sum(line[1:])) ▼ 링크 https://www.acmicpc.net/problem/1541
N = int(input()) def fibo(N): if N==0: return 0 elif N==1: return 1 return fibo(N-2) + fibo(N-1) print(fibo(N)) ▼ 링크 https://www.acmicpc.net/problem/10870 10870번: 피보나치 수 5 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n>=2)가 된다. n=17일때 까지 피보나치 수를 써보면 다음과 같다. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1..