코딩/백준 [ALGORITHM](65)
-
백준 [ALGORITHM] - 이상한 곱셈 (1225)
a,b = map(str,input().split()) list_a = [a for a in a] list_b = [b for b in b] num = 0 for i in range(len(a)): for j in range(len(b)): num += (int(list_a[i]) * int(list_b[j])) print(num) 이렇게 제출하였는데 시간초과가 발생하였다. 2중 for문에서 숫자가 커질경우에 경우의 수가 매우 많아지기 때문에 요구 되는 시간이 많이 늘어나서 그런 것 같다. a,b = input().split() a,b = list(map(int,a)), list(map(int,b)) result = sum(a) *sum(b) print(result)
2023.04.08 -
백준 [ALGORITHM] - 합분해 (2225)
처음에는 itertools를 이용해서 제출하였다. 하지만 이는 시간복잡도가 기하급수적으로 증가되기 때문에, 시간제한인 2초를 넘기게 되고 dp를 이용하여 해결하였다
2023.04.05 -
백준 [ALGORITHM] - 잃어버린 괄호 (1541)
잃어버린 괄호라는 문제이다. 해당 코드를 짜기 전에 가장 오래 생각 했던 부분은 어디에 괄호를 넣어야 가장 작은 수가 나오는지? 이다. 예를 들어, 10-20+30-40이 주어졌다고 생각해보자. 여기서 양수인 숫자가 -로 변했을 때, 수가 더 작아지게 된다. 따라서 음수 뒤에 양수가 온다면 괄호에 포함시켜주면 된다는 것이다. 따라서 원래라면 10-20+30-40 = -20이 나와야 하지만. 10-(20+30)-40 = -80이 나오게 된다. 참고로 문자열을 입력 받고 난 후 계산은 파이썬의 eval함수를 이용하였는데, 여기서 나는 굳이 괄호를 사용하지 않고, 배열을 이용하여 -사이에 있는 값을 더해주고, 새로운 배열에 옮겨서 10 - 50 - 40 을 eval에 넣고 돌렸다. import re def p..
2023.04.01 -
백준 [ALGORITHM] - 조합 (2407)
n,m = map(int,input().split(" ")) un = 1 up = 1 for i in range(m,0,-1): un *= i for j in range(n,n-m,-1): up *= j print(int(up//un)) https://www.acmicpc.net/problem/2407
2023.02.04 -
백준 [ALGORITHM] - Javascript
try: x,y = map(list,input().split(" ")) result = "" for i in range(len(x)): x[i] = ord(x[i]) for j in range(len(y)): y[j] = ord(y[j]) for z in range(len(x)): for c in range(65,123): if x[z] == c: result = "NaN" for z in range(len(y)): for c in range(65,123): if y[z] == c: result = "NaN" for i in range(len(x)): x[i] = chr(x[i]) for j in range(len(y)): y[j] = chr(y[j]) if result == "NaN": print("N..
2023.02.02