문제 www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 코드 N = input().split('-') # 입력값을 '-'를 기준으로 입력받는다. ex) ['55', '50+40'] # 최솟값을 찾기 위해서는 '-' 이전 이후로 나눠서 연산을 해준뒤에 계산하면 최솟값이 나온다. result = [] for i in N: result.append(list(map(int,i.split('+')))) # '+'연산자로 묶인 것들은 더해 주기 위해서 리스트에 넣어..
문제 www.acmicpc.net/problem/2231 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net 코드 a = int(input()) # a의 가장 작은 생성자를 구하시오 result = 0 for i in range(a): # 0 부터 a까지 for문 돌음 result = i # 이전값 출력하기 위해서 저장해둠 str_i = str(i) # 자릿수를 쉽게 더하기 위해 문자열로 변환 for j in str_i: i += int(j) # ex) i = 198 + 1 + 9 +..
문제 www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net 코드 N, M = map(int,(input().split())) d = list(map(int, input().split())) # 카드 리스트 result = 0 Max = 0 for i in range(N-2): # 3중 for문을 돌면서 겹치지 않게 범위를 지정 for j in range(i+1,N-1): for k in range(j+1,N): if d[i]+d[j..
문제 www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 코드 import sys from collections import Counter N = int(sys.stdin.readline()) k = [] for i in range(N): k.append(int(sys.stdin.readline())) k.sort() #산술평균 print(int(round(sum(k)/N,0))) #중앙값 print(k[N//2]) #최빈값 f = Counter(k) # 딕셔너리 형태로 출력 Counter({-2..