일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 코딩테스트
- java
- simulation
- 파이썬
- database
- hash table
- Matrix
- Method
- Tree
- SQL
- two pointers
- dynamic programming
- sorting
- Binary Tree
- Counting
- implement
- Class
- Binary Search
- Number Theory
- greedy
- string
- geometry
- array
- Data Structure
- bit manipulation
- 코테
- 자바
- Stack
- Math
- 구현
- Today
- Total
목록java (1063)
코린이의 소소한 공부노트
1, 11, 12, 1121, ... 이 수열은 소설 『개미』에서 나와 개미 수열이라고 부르기도 하고 읽고 말하기 수열이라고 하기도 한다. 이 수열의 규칙은 이렇다. - 첫 번째 항은 1이다. - 이전 항의 이웃한 같은 숫자들을 묶는다. 이전 항이 11123333일 경우 (1, 1, 1), (2), (3, 3, 3, 3) - 묶인 숫자들의 숫자와 개수를 붙여 쓴다. 묶인 숫자들이 (1, 1, 1), (2), (3, 3, 3, 3)이므로 숫자와 개수를 붙여 쓰면 132134 - 2, 3을 반복한다. 이 개미 수열을 관찰하다 보면 수가 빠르게 길어지지만, 수를 이루는 숫자가 커지기는 쉽지 않다는 것을 알 수 있다. 개미 수열의 N번째 항의 자릿수 중 가장 큰 수를 출력해 보자. 1. 입력 - 첫째 줄에 양의..
평소 리듬게임을 즐겨하는 대소고 친구들은 서로 다른 타법을 가지고 있다. 타법은 안밖, 밖안, 계단, 역계단이 있다. 문자열 항목은 각 타법에서 나올 수 있는 문자열을 의미한다. 다른 친구가 입력한 문자를 보고 무슨 타법으로 쳤는지 알아보자. 1. 입력 - 길이가 8인 문자열 S가 주어진다. - 문자열 S는 각 문자 a, s, d, f, j, k, l, ;가 정확히 한 번씩 등장한다. 2. 출력 - 출력은 입력에 따라 결정된다. - 입력이 안밖인 경우: "in-out" - 입력이 밖안인 경우: "out-in" - 입력이 계단인 경우: "stairs" - 입력이 역계단인 경우: "reverse" - 만약 입력이 안밖, 밖안, 계단, 역계단 중 하나도 아니라면 "molu"를 출력한다. 3. 예제 4. 코드 ..
대구소프트웨어마이스터고에서는 2학년부터 각자의 진로에 따라 다른 과를 선택하게 된다. 과를 선택하면 반이 나뉘게 된다. 1, 2반에는 소프트웨어개발과, 3반에는 임베디드소프트웨어개발과, 4반에는 인공지능소프트웨어개발과를 선택한 학생들이 모이게 된다. 동아리 학생들의 명단이 주어지면 동아리에 소프트웨어개발과, 임베디드소프트웨어개발과, 인공지능소프트웨어개발과가 몇 명 있는지 알아보고 아무런 과에도 속할 수 없는 1학년 학생들도 몇 명이 있는지 알아보자. 1. 입력 - 첫째 줄에는 동아리 학생들의 수 P가 주어진다. (1
1. Input 1) int[] nums 2. Output 1) nums의 요소들로 높이 균형 이진 검색 트리를 만들어서 반환 - 답이 여러 가지일 경우 1개만 반환 3. Constraint 1) 1
1. Input 1) TreeNode root 2. Output 1) root가 좌우대칭 트리라면 true, 아니면 false를 반환 3. Constraint 1) 노드 수의 범위는 [1, 1000]이다. 2) -100 Output: false 5. Code /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, TreeNode right) { * this.val = val; * this.left =..
1. Input 1) ListNode head 2. Output 1) 정렬된 연결 리스트 head에서 모든 중복을 제외한 결과 리스트를 반환 3. Constraint 1) 노드 수의 범위는 [0, 300]이다. 2) -100 Output: [1,2,3] 5. Code /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this.next = next; } * } */ class Solution { ..
1. Input 1) int[] nums 2) int target 2. Output 1) nums에 target을 찾아서 그 인덱스를 반환 2) nums에 target이 없다면 target이 들어가게 될 인덱스를 반환 3. Constraint 1) 1
1. 입력 - 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. - 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. - 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j가 주어진다. - 1 ≤ N ≤ 100,000 - 1 ≤ M ≤ 100,000 - 1 ≤ i ≤ j ≤ N 2. 출력 - 총 M개의 줄에 입력으로 주어진 i번째 수부터 j번째 수까지 합을 출력한다. 3. 예제 4. 코드 import java.util.*; import java.io.*; class Main { static int n; static int[] tree; public static void main(String[] args) throws IOException { Buffe..
화은이는 이번 영어 시험에서 틀린 문제를 바탕으로 영어 단어 암기를 하려고 한다. 그 과정에서 효율적으로 영어 단어를 외우기 위해 영어 단어장을 만들려 하고 있다. 화은이가 만들고자 하는 단어장의 단어 순서는 다음과 같은 우선순위를 차례로 적용하여 만들어진다. (1) 자주 나오는 단어일수록 앞에 배치한다. (2) 해당 단어의 길이가 길수록 앞에 배치한다. (3) 알파벳 사전 순으로 앞에 있는 단어일수록 앞에 배치한다 M보다 짧은 길이의 단어의 경우 읽는 것만으로도 외울 수 있기 때문에 길이가 M이상인 단어들만 외운다고 한다. 화은이가 괴로운 영단어 암기를 효율적으로 할 수 있도록 단어장을 만들어 주자. 1. 입력 - 첫째 줄에는 영어 지문에 나오는 단어의 개수 N과 외울 단어의 길이 기준이 되는 M이 공..