본문 바로가기

백앤드 개발/코딩테스트

[Java] 자주 사용하는 코딩테스트 문법

1. String

String str = "apple";

// 길이 반환
str.length();	// 5

// 빈 문자열 체크
str.isEmpty();	// false

// 문자 찾기
str.charAt(0);	// 'a' 문자 반환
str.indexOf("p");	// 처음 발견되는 인덱스 반환(1), 찾지 못할 경우 -1 반환

// 문자 자르기
str.substring(1,3);	// "pp"
str.substring(3);	// "app"

// 문자 바꾸기
str.replace('p','');	// "ale"
str.replaceAll(".","/");	// "/////" 정규식에 맞춰 문자 치환 ("." 은 모든 문자 의미)
str.replaceAll("[^a-z]", "") // a~z까지를 제외한 나머지를 빈 공간으로 바꿈

// 문자 동일 여부 판단
str.equals("apple");	// true;

// 문자 포함 판단
str.contains("app"); // true

// 문자열 분리, String [] 변환
str.split(" ");	// 띄어쓰기로 구분된 문자열을 분리해 str [] 변환

// 문자-숫자 변환
Integer.toString(100);	// 숫자 100을 "100"으로 변환
Integer.parseInt("100");	// "100"을 숫자 100으로 변환

// 대, 소문자 변환
str = str.toUpperCase();	// "APPLE";
str = str.toLowerCase();	// "apple";

// CharArray 변환
str.toCharArray();	// ['a','p','l','l','e']

// 문자열 정답 반환시
String answer = "";
answer += 'a';

 

2. Character

char [] charArr = {'a','p','p','l','e'};

// 문자인지 확인
Character.isAlphabetic(charArr[0]);	// true
Character.isAlphabetic('!');	// false

// 문자열 변한
String answer = String.valueof(charArr);	// "apple"

3. StringBuilder

// String은 한번 만들어지면 문자를 추가하거나 삭제할 수 없기에
// 변경이 필요한 경우 StringBuilder를 사용

Stringbuilder sb = new StringBuilder("apple");

// 문자열 추가
sb.append("apple");	"appleapple"

// 문자열 삭제
sb.delete(0,2);	// "apple", 인덱스 0~4까지의 문자열 삭제

// 특정 인덱스 문자 삭제
sb.deleteCharAt(2);	"aple"

// 특정 인덱스 문자 수정
sb.setCharAt(2, 'p');	//"appe"

// 문자열 뒤집기
sb.reverse();	// "eppa"

// 문자열 반환
String str = sb.toString();	// "eppa"

// 문자열 뒤집고 문자열 반환
String reversed = sb.reverse().toString();	// "appe"

 

4. List

// 리스트는 중복이 허용되고 순서가 있는 컬렉션

List<String> list = new ArrayList<>();
List<String> list2 = new ArrayList<>();

// 요소 삽임
list.add("one");
list.add("zero", 0);

// 특정 요소의 첫 인덱스 반환
list.indexOf("zero");	// 0

// 특정 인덱스 또는 값 삭제
list.remove(0);
list.remove("one");

// 빈 리스트 체크
list.isEmpty;	// true

// 특정 문자열 포함 체크
list.contains("one");	// false

 

5. Stack

// 스택은 후입선출 원칙에 따라 데이터를 저장하는 컬렉션

Stack<Integer> stk = new stack<>();

// 요소 추가
stk.push(1);

// 요소 꺼내기
stk.pop();

// 비우기
stk.clear();

// 길이
stk.size();

// 요소 존재 확인
stk.contains(1);

// 최상단 요소 확인
stk.peak();

 

6.  Queue

// 선입선출 원칙을 따르는 컬렉션 클래스

Queue<Integer> queue = new LinkedLiST<>();

// 요소 추가
queue.add(1);	// 문제 상황시 예외 발생
queue.offer(2);	// 문제 상황시 false 리턴

// 요소 제거
String frontItem = queue.remove();	// 맨 앞 요소 제거 후 반환 or 예외 발생
String frontItemOrNull = queue.poll();	// 맨 앞 요소 제거 후 반환 or false 리턴

// 맨 앞 요소 반환
String frontItem = queue.element();	// 맨 앞의 항목 반환 or 예외 발생
String frontItemOrNull = queue.peek();	// 맨 앞우 항목 반환 or null