목록분류 전체보기 (8)
앞날창창이승경 개발 블로그

9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 문제 설명 스택과 pop 함수를 이용합니다. CODE n = int(input()) for _ in range(n): s = input() stack = [] res = 'NO' for i in s: if i == '(': stack.append(i) elif i == ')': if len(stack) > 0 and stack[-1] == '(': stack.pop() else: stack.append(i) if len(stack)..

22993번: 서든어택 3 좋은 전투 순서가 존재해서 준원이만 생존하고 나머지 플레이어가 모두 죽게 만들 수 있다면 Yes를, 반대로 전투가 어떤 순서로 이루어져도 준원이가 절대 최후의 생존자가 될 수 없다면 No를 www.acmicpc.net CODE n = int(input()) arr = list(map(int,input().split())) def sudden() : jun = arr.pop(0) arr.sort() for i in arr : if jun > i : jun += i else : return "No" return "Yes" print(sudden()) 설명 - 준원이를 포함한 플레이어의 수를 입력받습니다. - 각 플레이어의 공격력을 입력받습니다. - 함수를 생성합니다. - 변수에 준..

자료구조와 알고리즘 공부를 위해 파이썬 알고리즘 인터뷰 라는 책을 샀다. 아는 알고리즘 사이트란 백준과 프로그래머스 코드업 뿐이지만 이 책을 통해 리트코드(LeetCode)라는 사이트도 이용해봐야겠다.(영어로 되있어서 걱정되긴 하지만;) 이번에 한국 코드페어에서 열린 레벨테스트에서 처참한 결과를 얻으면서 알고리즘 공부를 더 열심히 해야겠다는 생각으로 사게되었다. 기업 코딩테스트를 위해 만들어진 책이지만 나도 언젠가 코딩테스트로 입사를 해야한다는 생각과 어리지만 나이가 뭐가 중요하다고 생각하고 샀다. 열심히 해야겠다.

2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net CODE n = int(input()) answer = 0 while True : if n % 5 == 0 : answer += n // 5 print(answer) break n -= 3 answer +=1 if n < 0 : print(-1) break 설명 - 배달해야 하는 설탕의 무게를 입력받습니다. - 쓰는 봉지 개수(답) 변수를 만들어 0으로 설정합니다. - 5키로그램 봉지를 많이 쓸 수록 필요한 봉지 개수가 작아지기 때문에 배달해야 하는 설탕의 무게가 5로 나..

4673번: 셀프 넘버 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, www.acmicpc.net CODE s = set(range(1,10001)) e = set() for i in range(1,10001) : arr = list(map(int,str(i))) i += sum(arr) e.add(i) s = sorted(s - e) for i in s : print(i) 설명 - 리스트 빼기 리스트는 허용되지 않기 때문에 1부터 10000까지 들어간 튜플 한개와 빈 튜플 한개를 생성합니다. - 반복문을 1..

개념-재귀 알고리즘과 분할정복(Divide and Conquer) 기법이 이용됩니다.-다른 정렬 알고리즘을 이용하면 데이터 수가 많아질 수록 시간이 오래걸리고 메모리가 커지지만(시간 복잡도:N²)퀵정렬은 시간복잡도가 NlogN이므로 훨씬 빠르기때문입니다.(최악의 경우인 리스트가 이미 정렬 되있거나 역순으로 정렬 되어있으면 N²의 시간 복잡도를 가집니다.)CODEdef quick_sort(a) : if len(a) pivot : right.append(i) else : piv.append(i) return quick_sort(left) + piv + quick_sort(right)arr = [10,30,20,40,90,60]print(quic..

7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net CODE n = int(input()) arr = [] for i in range(n) : a,b = map(int,input().split()) arr.append([a,b,1]) for i in arr : for j in arr : if i[0] < j[0] and i[1] < j[1] : i[2] += 1 for i in arr : print(i[2], end = ' ') 설명 - n을 입력받습니다. -리스트(arr) 한개를 만듭니다 -n번만큼..

목적 -리스트를 정리하기 위해 사용한다. list.sort() arr = [1,3,2,5,4] print(arr) #[1,3,2,5,4] arr.sort() print(arr) #[1,2,3,4,5] -원본(arr)의 내용이 정렬된 내용으로 바뀝니다. -반환 값이 none입니다.(반환을 하지 않음) sorted(list) arr = [1,3,2,5,4] print(sorted(arr)) #[1,2,3,4,5] print(arr) #[1,3,2,5,4] -원본 리스트에는 아무 영향이 없습니다. -새로운 정렬된 리스트를 반환합니다. reverse = True/False 를 이용하여 오름차순 내림차순으로 정렬하기 >>> arr [1, 3, 2, 5, 4] >>> arr.sort(reverse = False) ..