일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- string
- database
- geometry
- Data Structure
- Binary Search
- Binary Tree
- array
- Counting
- Method
- Class
- 자바
- sorting
- 코테
- Math
- 파이썬
- simulation
- two pointers
- 코딩테스트
- bit manipulation
- greedy
- implement
- Stack
- java
- Matrix
- 구현
- Number Theory
- SQL
- Tree
- dynamic programming
- hash table
- Today
- Total
목록코딩테스트 풀이/JAVA (963)
코린이의 소소한 공부노트
1. 입력 - 첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어진다. - N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수이다. - 둘째 줄부터 N개의 줄에 포켓몬의 번호가 1번인 포켓몬부터 N번에 해당하는 포켓몬까지 한 줄에 하나씩 입력으로 들어온다. - 포켓몬의 이름은 모두 영어로만 이루어져있고, 첫 글자만 대문자이고, 나머지 문자는 소문자로만 이루어져 있다. 일부 포켓몬은 마지막 문자만 대문자일 수도 있다. - 포켓몬 이름의 최대 길이는 20, 최소 길이는 2 - 그 다음 줄부터 총 M개의 줄에 내가 맞춰야하는 문제가 입력으로 들어온다. - 문제가 알파벳으로만 들어오면 포켓몬 번호를 말해야 하고, 숫자로만 들어오면 포켓몬 번호에 해당..
1. 입력 - 첫째 줄에 로그에 기록된 출입 기록의 수 n이 주어진다. (2 ≤ n ≤ 10^6) - 다음 n개의 줄에는 출입 기록이 순서대로 주어지며, 각 사람의 이름이 주어지고 "enter"나 "leave"가 주어진다. "enter"인 경우는 출근, "leave"인 경우는 퇴근이다. - 회사에는 동명이인이 없으며, 대소문자가 다른 경우에는 다른 이름이다. - 사람들의 이름은 알파벳 대소문자로 구성된 5글자 이하의 문자열이다. 2. 출력 - 현재 회사에 있는 사람의 이름을 사전 순의 역순으로 한 줄에 한 명씩 출력한다. 3. 코드 import java.util.*; import java.io.*; class Main { public static void main(String[] args) throws ..
1. 입력 - 20줄에 걸쳐 치훈이가 수강한 전공과목의 과목명, 학점, 등급이 공백으로 구분되어 주어진다. - 1 ≤ 과목명의 길이 ≤ 50 - 과목명은 알파벳 대소문자 또는 숫자로만 이루어져 있으며, 띄어쓰기 없이 주어진다. - 입력으로 주어지는 모든 과목명은 서로 다르다. - 학점은 1.0,2.0,3.0,4.0중 하나이다. - 등급은 A+,A0,B+,B0,C+,C0,D+,D0,F,P중 하나이다. - 적어도 한 과목은 등급이 P가 아님이 보장된다. 2. 출력 - 치훈이의 전공평점을 출력한다. - 전공평점은 전공과목별 (학점 × 과목평점)의 합을 학점의 총합으로 나눈 값이다. - 등급이 P인 과목은 계산에서 제외한다. - 정답과의 절대오차 또는 상대오차가 10^{-4} 이하이면 정답으로 인정한다. 3. ..
1. 입력 - 첫째 줄에 최대 100글자의 단어가 주어진다. 알파벳 소문자와 '-', '='로만 이루어져 있다. - 단어는 크로아티아 알파벳으로 이루어져 있다. 표에 나와있는 알파벳은 변경된 형태로 입력된다. 표에 없는 알파벳은 한 글자씩 센다. 2. 출력 - 입력으로 주어진 단어가 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다. 3. 코드 import java.io.*; class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String word = br.readLine(); String[..
1. Input 1) int[] nums 2. Output 1) nums의 요소 중 1개만 있는 요소들의 합을 반환 3. Constraint 1) 1
1. Input 1) String time 2. Output 1) time의 ?을 숫자로 바꿨을 때 가장 늦은 시간을 나타내는 문자열을 반환 3. Constraint 1) time은 00:00부터 23:59까지의 시간을 나타내는 문자열이다. 2) 항상 유효한 답이 있다는 것이 보장된다. 4. Example Input: time = "2?:?0" -> Output: "23:50" Input: time = "0?:3?" -> Output: "09:39" 5. Code 1) 첫 코드(2023/04/16) char[] t = time.toCharArray(); if(t[0]=='?'){ if(t[1]=='?'){ t[0] = '2'; t[1] = '3'; } else if(t[1]
1. Input 1) String number 2. Output 1) 다음 규칙에 따라 재배열한 전화번호를 반환 - number에 있는 공백과 대쉬(-)를 지운다. - 앞에서부터 숫자를 3개씩 끊어서 대쉬로 구분짓는다. - 숫자가 4개 이하가 남으면 아래와 같이 처리한다. 2~3개: 묶음으로 처리 4개: 2개/2개로 나눠서 대쉬로 구분짓는다. 3. Constraint 1) 2 Output: "123-45-67" Input: number = "123 4-5678" -> Output: "123-456-78" 5. Code 1) 첫 코드(2023/04/16) number = number.replaceAll("[-\\s]",""); int i = 0; String answer = ""; while(i
1. Input 1) int[] code - code.length == n 2) int k 2. Output 1) code를 풀기 위해 다음과 같은 단계를 거치고 난 후 암호가 해제된 결과 배열을 반환 - k>0: code[i] = i번째의 다음 k개의 합 - k
1. Input 1) int n 2. Output 1) 길이가 n+1인 배열을 다음과 같은 규칙으로 만든 후, 배열의 요소 중 가장 큰 값을 반환 - nums[0] = 0 - nums[1] = 1 - nums[2*i] = nums[i] (2