[백준/약점체크] 1806번: 부분합
2022. 9. 25. 22:27
컴퓨터/코딩테스트
[문제] [내 코드] 먼저 시간 초과 오류가 떴던 코드다 N, S = map(int, input().split()) li = list(map(int, input().split())) def finder(answer): while True: for start in range(N): end = start+answer if sum(li[start:end]) >= S: return answer answer += 1 return 0 print(finder(0)) - answer를 두 인덱스의 간격으로 두고, 슬라이싱하여 합을 구했다 - 시간 초과 오류!! 그 다음, 통과한 코드다 N, S = map(int, input().split()) data = list(map(int, input().split())) sta..
[백준/약점체크] 1700번: 멀티탭 스케줄링
2022. 9. 24. 23:17
컴퓨터/코딩테스트
[문제] [내 코드] -> 틀렸습니다!! N, K = map(int, input().split()) usage = list(map(int, input().split())) plug = [] res = 0 for i in range(K): if usage[i] in plug: continue elif len(plug) < N: plug.append(usage[i]) else: wait = [] for j in usage[i:]: if j in plug: wait.append(j) if len(wait) == N: break if set(plug) - set(wait): obj = (set(plug) - set(wait)).pop() else: obj = wait[-1] plug[plug.index(obj)..
[백준/약점체크] 1062번: 가르침
2022. 9. 24. 21:55
컴퓨터/코딩테스트
[문제] [내 코드] N, K = map(int, input().split()) words = [input() for _ in range(N)] basics = ['t', 'i', 'c', 'a', 'n'] if K < len(basics): print(0) elif K == 26: print(len(words)) else: result = 0 unlearned = list(set([w for word in words for w in word if w not in basics])) # unlearned 중에서 r개를 새로 배운다 n = len(unlearned) r = K - len(basics) def dfs(idx, ls): global result if len(ls) == r: tmp = 0 lea..
[백준/약점체크] 14719번: 빗물
2022. 9. 18. 19:22
컴퓨터/코딩테스트
[문제] [내 코드] H, W = map(int, input().split()) blocks = list(map(int, input().split())) result = 0 for i in range(1, H+1): level = [] for j in range(len(blocks)): if i > blocks[j]: level.append(0) else: level.append(1) for l in range(len(level)): before = sum(level[:l]) after = sum(level[l:]) if (before>0) and (after>0) and (level[l] == 0) : result+=1 print(result) - 굉장히 어거지로 풀었다.. 층마다 0과 1로 블럭을 쌓..
[백준/약점체크] 2504번: 괄호의 값
2022. 9. 18. 16:58
컴퓨터/코딩테스트
[문제] [내 코드] - 위 문제를 풀기 위해서는 먼저 괄호의 쌍이 올바르게 맞춰져 있는지 판단할 수 있어야 한다. 그 부분 코드 구현을 먼저 연습했다. - 이 문제를 해결하기 위해서는 stack을 활용해야 한다 - list로 구현한 stack에 여는 괄호를 append하고 닫는 괄호가 나오면 후입선출한다 (stack.pop(-1)) - 만약 추출할 괄호가 없거나(stack == []), 추출한 괄호가 맞지(bd == match[d]) 않으면 쌍이 잘못 맞춰져 있다고 판단한다 data = list(map(str, input())) match = {')':'(', ']':'['} stack = [] result = 1 for d in data: if d in match.values(): stack.appe..
[백준/약점체크] 14888번: 연산자 끼워넣기
2022. 9. 16. 16:12
컴퓨터/코딩테스트
이 문제 재밌었다.. [문제] [내 코드] from itertools import permutations import operator cnt = int(input()) - 1 arr = list(map(str, input().split())) ops_cnt = [] for i, j in zip(input().split(), ['+','-','*','/']): ops_cnt += [j]*int(i) cases = list(set(permutations(ops_cnt, cnt))) def my_div(arg1, arg2): if arg1 < 0: result = (abs(arg1) // arg2) * (-1) else: result = arg1//arg2 return result ops = { '+' : o..
[백준/튼튼한기본기] 2581번: 소수
2022. 9. 15. 16:39
컴퓨터/코딩테스트
[문제] [내 코드] M = int(input()) N = int(input()) dec = [] for i in range(M, N+1): for j in range(2, i+1): if i%j == 0: if i == j: dec.append(i) break if len(dec) < 1: print(-1) else: print(sum(dec)) print(min(dec)) 지난번 소수 구하기 문제처럼 나누어지는 게 자기자신 외의 숫자로 나누어지면 for 문을 break하는 식으로 했다 그리고 소수가 존재하지 않을 때는 문제에서 제시한 대로 -1를 출력했다
[백준/튼튼한기본기] 1292번: 쉽게 푸는 문제
2022. 9. 15. 16:28
컴퓨터/코딩테스트
아... 이 문제 때문에 꿈까지 꿨다. 너무나도 컨닝하고 싶었으나 개발새발로라도 스스로 코드를 짜봤다. 따라서 개발새발 주의. [문제] [내 코드] A, B = map(int, input().split()) def find_num(n): for i in range(n+1): thr = (i * (i+1))/2 n_diff = n - thr if n_diff