목록ALGORITHM/SOLVE (67)
정구리의 우주정복
https://www.acmicpc.net/problem/18258 18258번: 큐 2 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 2,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 시간 제한이 있어서 아마 많은 분들이 시간초과로 인해서 못 풀었을 수 있을것 같다 나도 처음에 시간초과 걸리고 아주 놀랐다구 ! 힌트 (해설을 보기 전 먼저 풀어보셔요) - pop 부분에서 굳이 list 의 것을 제거하려 하지말고 맨 가리키고 있는 부분을 +1씩 해줘보기 ex) queue = [1,2,3,4,5] 처음엔 [0] 을 가르키고 pop 을 하면 [1] 을 가르키..
재귀함수에 너무 약해서 연습해보고자 풀어보았음 n = 5 라면 n! 은 1*2*3*4*5 이다 n*(n-1)*(n-2)*(n-3)*(n-4) 와도 같음 1! 일때 0! 일때를 잊지말구 해줍시당 n = int(input()) def factorial(n): if n == 0: return 1 elif n == 1: return 1 else: return (n*factorial(n-1)) print(factorial(n))
https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 문제 세계는 균형이 잘 잡혀있어야 한다. 양과 음, 빛과 어둠 그리고 왼쪽 괄호와 오른쪽 괄호처럼 말이다. 정민이의 임무는 어떤 문자열이 주어졌을 때, 괄호들의 균형이 잘 맞춰져 있는지 판단 www.acmicpc.net 괄호 문제와 거의 동일하다 ! match ={')':'(',']':'['} while True: string = str(input()) stack = [] check = 0 if string =='.': break for word in string: if word in '[(': stack.append(word) elif word in match: if len(stack) ==0: print('n..
https://www.acmicpc.net/problem/9012 9012번: 괄호 문제 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)�� www.acmicpc.net testCase = int(input()) for _ in range(testCase): stack = [] vps = input() check = 0 for c in vps: if c =='(': stack.append(c) elif c ==')': if len(stack) ==0: print('NO') check = 1 break else: stack.pop(..
https://www.acmicpc.net/problem/10773 10773번: 제로 문제 나코더 기장 재민이는 동아리 회식을 준비하기 위해서 장부를 관리하는 중이다. 재현이는 재민이를 도와서 돈을 관리하는 중인데, 애석하게도 항상 정신없는 재현이는 돈을 실수로 잘못 �� www.acmicpc.net stack = [] testCase = int(input()) for i in range(testCase): num = int(input()) if num ==0: stack.pop(-1) else: stack.append(num) print(sum(stack)) 0인지 아닌지 체크해서 0 이면 pop 0이 아니면 append 를 해주면 되는 아주 간단한 문제 ~
https://programmers.co.kr/learn/courses/30/lessons/42586?language=python3 문제 이해가 어려웠다 def solution(progresses, speeds): answer = [] while len(progresses) != 0: for i in range(len(progresses)): progresses[i] = progresses[i] + speeds[i] if progresses[0] >= 100: count = 0 while progresses[0] >= 100: count += 1 progresses.pop(0) speeds.pop(0) if len(progresses)==0: break #print(count) answer.append(..
https://programmers.co.kr/learn/courses/30/lessons/12899 코딩테스트 연습 - 124 나라의 숫자 124 나라가 있습니다. 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다. 124 나라에는 자연수만 존재합니다. 124 나라에는 모든 수를 표현할 때 1, 2, 4만 사용합니다. programmers.co.kr def solution(n): num_lst=['4','1','2'] #나머지들의 모임 num = '' while n > 0: namugi = n%3 #나머지 n = n//3 #몫 if namugi == 0: n -= 1 num = num_lst[namugi]+num return num 3진법을 써야지 ! 라고 생각을 했는데..
https://programmers.co.kr/learn/courses/30/lessons/42583 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일 차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 트럭은 1초에 1만큼 움직이며, 다리 길이�� programmers.co.kr 처음으로 도전해본 레벨 2 문제 def solution(bridge_length, weight, truck_weights): num_truck = len(truck_weights) #트럭의 총 개수 time = 0 #걸린 시간 arrive_truck = [] #도착트럭 ing_truck =[] #지금 지나고 있는 트럭 time_truck = ..