🙆
プログラミング自主学習 DAY58 ★Coding Test Review★
Coding Test Method
個人的な勉強のため、この度は韓国語でまとめます。
Scanner
import java.util.Scanner;
Scanner sc = new Scanner(System.in)
sc.next(); //input: hello world -> output: hello
sc.nextLine(); //input: hello world -> hello world
sc.nextInt();
sc.nextDouble();
String
my_string.charAt(0) -> 'H 문자열의 문자 추출
my_stirng.length() -> 문자열의 길이 리턴
my_string.replacefirst("a","e"); 하나의 문자(열)을 하나만 바꾸기(가장 첫번째)
"Haalo" -> "Healo"
my_string.replace("a", "e") 하나의 문자(열)를 모두 바꾸기
"Haalo" -> "Heelo"
my_string.replace("a", "") -> 하나의 문자(열)를 모두 제거하기
"Haalo" -> "Hlo"
my_string.replace(" ", "") -> 공백 제거하기
"H aalo" -> "Haalo"
my_string replaceAll([a|e|i|o|u], "") -> 하나 이상의 문자를 모두 제거하기
"Haalo" -> "Hl"
my_string replaceAll("\\s+", ",") -> 하나 이상의 문자(공백)을 모두 바꾸기
my_string.trim(); 앞뒤 공백 제거
my_stinrg.strip(); 앞뒤 공백 제거(더 좋음)
my_string.split("x"); -> 구분자로 쪼개서 String 배열로 바꾸기
"1x2x3" ->["1","2","3"]
my_string.split(""); -> 하나의 문자열로 쪼개서 String 배열로 바꾸기
"asd" -> ["a","s","d"]
my_string.toCharArray(); -> 문자열을 쪼개서 char 배열로 바꾸기
my_string.join("," arr); -> 모든 String 배열에 하나의 String으로 합치기
["a","s","d"] ->"a,s,d"
my_string.join("" arr);
["a","s","d"] ->"asd"
my_string.repeat(n); -> 문자열 n번 반복
my_string.concat(str); -> 문자열 합치기(새 객체 생성)
sb.append(str).toString(); -> Stringbuiler의 객체로 문자열 합치기
my_string.substring(idx) -> idx부터 끝까지 제거한 문자열 리턴
my_string.substring(start idx, end idx) -> start부터 end까지 제거한 문자열 리털
my_string.toUpperCase(); -> 모든 문자열을 대문자로
my_string.toLowerCase(); -> 모든 문자열을 소문자로
my_string.valueOf() -> 다른 데이터 타입의 값을 String으로 변환
value+" " -> 다른 데이터 타입의 값을 String으로 변환
my_string.startWith(str) -> 접두사를 탐색 후 포함여부를 리턴
my_string.startWith(str,n) -> n번 인덱스부터 접두사를 탐색후 포함여부를 리턴
my_string.endsWith(str) -> str의 접미사를 탐색 후 포함여부를 리턴
my_string.equalsIgnoreCase -> 대소문자 무시하고 문자열의 포함 여부 리턴
my_string.contains(str) -> str을 탐색 후 포함여부를 리턴
my_string.isEmpty(str) -> 문자열이 비어있는지 리턴
my_string.compareTo(str) -> str보다 작다면 1, 같다면 0, 크다면 -1 리턴
my_string.compareToIgnoreCase(str) -> 대소문자 차이를 무시하고 비교
my_string.indexOf(str) -> str을 탐색 후 시작하는 인덱스 리턴
StringBuilder
<추가>
sb.append(str).toString(); -> Stringbuiler의 객체로 문자열 합치기
sb= "hell"
sb.append("o").toString();
String my_string = "hello"
<삭제>
sb.delete(from, to) : from부터 to까지 해당되는 index들을 제거한다. (to는 제외)
sb = "hello"
sb.delete(1,4).toString();
String my_string = "ho"
sb.deleteCharAt(index) : index에 해당하는 문자 하나를 제거한다.
sb = "hello"
sb.deleteCharAt(4).toString();
String my_string ="hell"
<삽입>
insert(index, Object) : index위치에 Object를 추가한다.
sb = "helo"
sb.insert(3,"L"),toString();
String my_string = "helLo"
<변경>
replace(from, to, str) : from, to 부분을 String으로 변경한다. (to는 제외)
sb ="hello"
sb.replace(0,1,"E"); "Eello"
sb.replace(0,4,"HELL"); "HELLo" //마지막 결과
sb.setLength(len) : 첫 인덱스부터 len만큼 String의 길이를 변경한다.
sb ="hello"
sb.setLength(0).toString(); //
sb.setLength(1).toString(); //h
sb.setLength(5).toString(); //hello
setChar(index, char) : 해당 index를 char로 변경한다.
sb = "hello"
sb.setChar(4,' ')toString() //"hell "
sb.reverse() : 문자열을 뒤집는다.
sb = "hello"
sb.reverse().toString();
String my_string ="olleh"
Arrays
import java.util.Arrays
Arrays.sort(arr) : 오름차순 정렬
Arrays.sort(arr.Collection.reverseOrder()) 내림차순 정렬(기본형 데이터는 안됨)
Arrays.toString(); 1차원 배열 요소를 문자열로 리턴
Arrays.toDeepString(); 다차원 배열 요소를 문자열로 리턴
Arrays.copyOfRange(arr,num1,num2+1)l arr배열의 num1번 인덱스부터 num2번 인덱스까지 복사
System.arraycopy(old,startidx,new,startidx,length)
int[] new = old.clone() 전체 복사
Coding Test Algorithm
Accmulate
Cumulative Sum
int sum=0;
for(int a:arr)
sum+=arr;
Sum of Degit
int sum=0;
while(n>0){
sum%=10;
n/=10;
}
Cumulative Product
int mul=1;
for(int a:arr)
mul*=arr;
Factorial
int n=5;
int mul=1;
for(int i=n; i>0; i--)
mul*=n;
SWAP
int temp = a;
a = b;
b = temp;
MIN (+SWAP)
if(prev>next)
{int temp = int a;
a = b;
b = temp;
}
MAX (+SWAP)
if(prev<next)
{int temp = a;
a = b;
b = temp;
}
fibonachi(+SWAP)
int sum0 =1;
int sum1 =1;
for(int i=0;i<10;i++) {
if(i==0) {
System.out.print(sum0+ " ");
}
else {
System.out.print(sum1+ " ");
int sum2 = sum0+ sum1;
sum0 = sum1;
sum1 = sum2;
}
}
SORT
Selection
N=5
for(int i=0; i<N-1; i++){
for(int j=i+1; j<N; j++){
if(arr[i]>arr[j])
{int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
Bubble
N=5
for(int i=0; i<N-1; i++){
for(int j=0; j<N-i; j++){
if(arr[j]>arr[j+1])
{int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
Insertion
N=5
int key=0; //prev+1
int prev=0;
for(int i=1; i<N; i++){
key = a[i];
prev = i-1;
while(prev>=0){
arr[prev]=arr[prev+1]
prev--;
}
arr[prev+1]=key;
}
SEARCH
Linear Search
int i =0;
int size=N
while(true){
if(i==size) return -1;
if(arr[i]==i) return i;
i++;
}
int input =X
int size=N
for(int i=0; i<size;i++){
if(input = arr[i]) return i;
}
return -1;
Binary Search
N=5;
int key = ?;
int start= 0;
int last =N-1;
while(start<=last){
int center =(start+last)/2;
if(arr[center]==key) return center;
else if(arr[center]>key) start=center+1;
else if(arr[center]<key) last =center-1;
}
return -1;
MATH
Even&Odd
boolean even = n%2==0;
boolean odd = n%2==1;
Multiple(i는 n의 배수)
int n = 5;
boolean check = (i%n==0);
Common Multiple(i의 공배수)
int n>=2
(number%n==0 && number%m==0)
divisor(n은 i의 약수)
int n>=2
boolean check = (i%n ==0)
LeapYear
boolean check = (year%4==0 && year%100=!0 || year%400)
Discussion