본문 바로가기

Dev

카탈란 수 Catalan number Python 구현 https://www.acmicpc.net/problem/10422 10422번: 괄호 ‘(‘, ‘)’ 문자로만 이루어진 문자열을 괄호 문자열이라 한다. 올바른 괄호 문자열이란 다음과 같이 정의된다. ()는 올바른 괄호 문자열이다. S가 올바른 괄호 문자열이라면, (S)도 올바른 괄호 문자열이다. S와 T가 올바른 괄호 문자열이라면, 두 문자열을 이어 붙인 ST도 올바른 괄호 문자열이다. (()())()은 올바른 괄호 문자열이지만 (()은 올바른 괄호 문자열이 아니다. 괄호 문자열이 주어졌을 때 올바른 괄호 문자열인지 확인하는 방법은 여러 www.acmicpc.net 이 문제를 풀면서 처음 알게된 수열이다. 뭐 위키피디아 같은데 보면 증명 다 볼 수 있는데, 코딩테스트에서 쓸 수 있을정도로만 알면 되니까.. 더보기
DP- 0-1 Knapsack (백준 12865 평범한 배낭) 문제 : https://www.acmicpc.net/problem/12865 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000)가 주어진다. 입력으로 주어지는 모든 수는 정수이다. www.acmicpc.net 0-1 Knapsack 문제 0-1 Knapsack은 물건을 쪼갤 수 없기 때문에 DP로 풀어야 한다. DP 배열은 DP [N개의 물건까지 확인했을 때][물건의 무게] = 물건의 가치이다. 이때, i 번째까지 물건을 확인했을 때, j까지 담을 경우에는 dp [i][j] =.. 더보기
Go 1.14 출시 https://blog.golang.org/go1.14 Go 1.14 is released - The Go Blog Alex Rakoczy 25 February 2020 Today the Go team is very happy to announce the release of Go 1.14. You can get it from the download page. Some of the highlights include: For the complete list of changes and more information about the improvements above, see blog.golang.org 이제 Go module 이 production ready로 바뀜 이제 인터페이스에서 메서드 시그니쳐 중복이 .. 더보기
next_permutation Python 구현 def next_permutation(arr): i,j = len(arr)-1, len(arr)-1 while i>0 and arr[i-1]>=arr[i]: i-=1 if i==0: return False while arr[i-1]>=arr[j]: j-=1 arr[i-1], arr[j] = arr[j],arr[i-1] k = len(arr)-1 while i= arr[i] 가 되는 i 중 제일 큰 값을 찾는다. i 가 0 이 되면 [5,4,3,2,1] 같이 역으로 정렬되어있는 값이라 순열의 끝이라 False 를 반환한다. arr[i-1] >= arr[j] 가 되는 j 중 가장 큰 값을 찾는다. 이 때, 1 번에서 arr[i-1] >= arr[i] 를 찾았기 때문에 무조건 i 더보기
Goroutine 정리 겸 번역 -1 개념과 구조 모 회사 면접에서 Goroutine은 어떻게 동작하냐는 질문에 댕댕이 소리만 했었는데, 좀 정리해서 다음번엔 좀 사람말처럼 들리는 댕댕이소리를 하는것을 목적으로 정리함. 예시 코드는 귀찮아서 패스. 1. Goroutine Goroutine 은 Go runtime 에 의해 관리되는 경량 쓰레드이다. (#) 특징으로는 : 기본 쓰레드에 비해 엄청 가볍다. X KB 정도 (기본 쓰레드는 MB단위) Context Switching 도 가볍다. (program counter 랑 몇개만 들고있을거다.) 그래서 쉽게쉽게 Concurrency 가능 쓰레드 위에 몇개 붙어있는 구조임 따라서 한 쓰레드가 system call같은걸로 block당해도 다른 쓰레드의 goroutine을 돌리면됨 Channel 로 각 gorou.. 더보기
Swift 5 정리-1 (스위프트 프로그래밍 3판 2장) Swift 5 컨닝페이퍼 만들기 Naming convention 유니코드 사용가능 예약어 불가 이름 중복금지 연산자 숫자로 시작 스페이스 금지 함수 메서드 인스턴스 -> 소문자 카멜케이스 copyPasteFunc 클래스, 구조체, 익스텐션, 프로토콜, 열거형 -> 대문자 카멜케이스 YoIAmHumanClass 대소문자 구분 print() ```swift print("swift good very good") print("hello swift \(varName)") // 문자열 보간법, varName이 들어감. ``` CustomStringConvertible 프로토콜 만들면 가능 StringInterpolationProtocol 도 있음 -> 다양한 경우 주석 // 한줄주석 /* 여러 줄 주석 */ 마크업.. 더보기