🙆

プログラミング自主学習 DAY58 ★Coding Test Review★

2023/07/24に公開

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;
}
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;

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