일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- Number Theory
- string
- two pointers
- Class
- bit manipulation
- Stack
- 코딩테스트
- 자바
- 구현
- geometry
- dynamic programming
- Math
- Counting
- Method
- Binary Tree
- java
- Data Structure
- implement
- 코테
- Binary Search
- greedy
- Matrix
- simulation
- sorting
- array
- SQL
- hash table
- database
- Tree
- 파이썬
- Today
- Total
목록분류 전체보기 (1234)
코린이의 소소한 공부노트
1. Input 1) int[] nums 2. Output 1) nums의 요소 중 그 개수가 nums의 길이의 절반보다 더 많은 요소를 반환 3. Constraint 1) n == nums.length 2) 1
1. Input 1) TreeNode root 2. Output 1) root를 후위순회한 결과를 리스트에 담아 반환 3. Constraint 1) root의 노드 수는 [0, 100]이다. 2) -100
1. Input 1) TreeNode root 2. Output 1) root를 전위순회한 결과를 리스트에 담아 반환 3. Constraint 1) root에 있는 노드의 수는 [0, 100]이다. 2) -100

1. Input 1) int rowIndex 2. Output 1) 파스칼 삼각형에서 위에서 rowIndex+1층에 위치한 수를 리스트에 담아 반환 3. Constraint 1) 0
1. Input 1) int numRows 2. Output 1) numRows층으로 구성된 파스칼 삼각형을 리스트의 리스트로 반환 3. Constraint 1) 1

오늘은 n의 피보나치 수를 재귀호출과 동적 프로그래밍으로 구하는 알고리즘을 배웠다. 재귀호출에 비해 동적 프로그래밍이 얼마나 빠른지 확인해 보자. // 피보나치 수 재귀호출 의사 코드는 다음과 같다. fib(n) { if (n = 1 or n = 2) then return 1; # 코드1 else return (fib(n - 1) + fib(n - 2)); } // 피보나치 수 동적 프로그래밍 의사 코드는 다음과 같다. fibonacci(n) { f[1]

1. 입력 - 총 다섯줄의 입력이 주어진다. 각 줄에는 최소 1개, 최대 15개의 글자들이 빈칸 없이 연속으로 주어진다. 주어지는 글자는 영어 대문자 ‘A’부터 ‘Z’, 영어 소문자 ‘a’부터 ‘z’, 숫자 ‘0’부터 ‘9’ 중 하나이다. 각 줄의 시작과 마지막에 빈칸은 없다. 2. 출력 - 5개의 단어를 세로로 읽은 순서대로 글자들을 출력한다. 이때, 글자들을 공백 없이 연속해서 출력한다. 3. 예제 4. 코드 import java.util.*; import java.io.*; class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStream..

그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때문에 그룹 단어이지만, aabbbccb는 b가 떨어져서 나타나기 때문에 그룹 단어가 아니다. 1. 입력 - 첫째 줄에 단어의 개수 N이 들어온다. N은 100보다 작거나 같은 자연수이다. - 둘째 줄부터 N개의 줄에 단어가 들어온다. 단어는 알파벳 소문자로만 되어있고 중복되지 않으며, 길이는 최대 100이다. 2. 출력 - 첫째 줄에 그룹 단어의 개수를 출력한다. 3. 예제 4. 코드 import java.io.*; import java.util.*; class Main { public ..
평소 반상회에 참석하는 것을 좋아하는 주희는 이번 기회에 부녀회장이 되고 싶어 각 층의 사람들을 불러 모아 반상회를 주최하려고 한다. 이 아파트에 거주를 하려면 조건이 있는데, “a층의 b호에 살려면 자신의 아래(a-1)층의 1호부터 b호까지 사람들의 수의 합만큼 사람들을 데려와 살아야 한다” 는 계약 조항을 꼭 지키고 들어와야 한다. 아파트에 비어있는 집은 없고 모든 거주민들이 이 계약 조건을 지키고 왔다고 가정했을 때, 주어지는 양의 정수 k와 n에 대해 k층에 n호에는 몇 명이 살고 있는지 출력하라. 단, 아파트에는 0층부터 있고 각층에는 1호부터 있으며, 0층의 i호에는 i명이 산다. 1. 입력 - 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄..
정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 1+1+1+1 1+1+2 1+2+1 2+1+1 2+2 1+3 3+1 1. 입력 - 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. - n은 양수이며 11보다 작다. 2. 출력 - 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. 3. 코드 import java.io.*; class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputSt..