ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [코딩테스트, Java] 자바 코딩테스트 문법 정리
    코딩테스트 2021. 12. 20. 01:56
    import java.util.*;
    import java.io.*;
    

    ArrayList

    • 깊은복사
    ArrayList<Integer> w=new ArrayList<Integer>();
    ArrayList<Integer> copy_w=new ArrayList<Integer>();
    copy_w.addAll(w);
    
    • Sort, Size
    ArrayList<Integer> ArrList=new ArrayList<Integer>();
    ArrList.sort(null);
    ArrList.size();
    

    List

    • set을 List로 변경하기 ⇒ List의 생성자에 set을 넣어준다.
    Set<String> set = new HashSet<String>();
    List<String> aList = new ArrayList<>(set);
    
    • Sort ⇒ List를 정렬할 때 Collections의 sort() 메소드를 이용한다.
    • Collections.sort()
    • add()
    • remove()
    • size()
    List<Stirng> alist = new ArrayList<>();
    Collections.sort(aList);
    alist.add(1);
    alist.remove(1);
    alist.size();
    
    • List 초기화 ⇒ Arrays.asList({value, ...})
    List<String> label = new ArrayList<>(Arrays.asList("zero","one","two","three","four","five","six","seven","eight","nine"));
    

    Set

    • add(value)
    • remove(value)
    • size()
    Set<String> set = new HashSet<String>();
    set.remove("str");
    set.size();
    

    Map

    • put(key, value)
    • get(key)
    • map.containsKey("str") ⇒ "str"이라는 키가 존재하면 true 아니면 false
    • size()
    Map<String, Integer> m = new HashMap<>();
    map.put("str", 1);
    map.get("str");
    map.containsKey("str");
    
    • Map의 value로 Collection값 넣기(List 같은)
    Map<String, List<Integer>> m = new HashMap<>();
    
    if(m.containKey(str) == false) {
    	List<Integer> list = new ArrayList<>();
    	list.add(4);
    	m.put(str, list);
    }
    else {
    	m.get(str).add(4);
    }
    

    Iterator

    • map, set의 값을 조회할 때, set.iterator()를 사용해 반복자를 생성한다.
    • hasNext(), next()
    Set<String> set = new HashSet<String>();
    Iterator<String> it = set.iterator();
    
    while(it.hasNext()){
    	String a = it.next();
    	System.out.println(a);
    }
    /*------------map------------------*/
    Map<String,Integer> map=new HashMap<>();
    Iterator<String> it= map.keySet().iterator();
    
    while(it.hasNext()){
    	String key=it.next();
    	int value=map.get(key);
    }
    

    String

    • 소문자, 대문자 ⇒ toLowerCase(), toUpperCase()
    • 길이 ⇒ str.length()
    String str ="ABC";
    str = str.toLowerCase();
    
    String str ="abc";
    str = str.toUpperCase();
    
    • 문자열을 Array로 ⇒ split("")
    String str ="ABC";
    String[] Arr = str.split("");
    //['A', 'B', 'C']
    
    • 문자열 자르기(SubString) ⇒ substirng()
    String str ="1234567";
    str.substring(3) // "4567", 3인덱스부터 끝까지
    str.substring(2, 5) // "345", 2~(5-1)
    
    • 문자열 뒤집기(Reverse) ⇒ new StringBuilder(str).reverse().toString();
    String str ="ABC";
    String str = new StringBuilder(str).reverse().toString();
    // "CBA"
    
    • replace(),
    • String a = Integer.toString(num);
    • int a = Integer.parseInt(str);
    String str = "가는 나입니다.";
    String text = str.replace('가', '는');
    System.out.println(text);

    입출력

    • BufferedReader
      • Enter를 경계로 입력값을 인식한다.
      • readLine() 메소드는 개행문자를 포함해 String형식으로 입력을 받아온다
    import java.io.InputStreamReader;
    import java.io.BufferedReader;
    
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    int n = Integer.parseInt(br.readLine());
    

    Queue

    • 생성
    • add()
    • poll()
    import java.util.Queue;
    Queue<Integer> queue = new LinkedList<>();
    Qeueu<String> queue = new LinkedList<>();
    
    queue.add(1);
    queue.add("str");
    
    int pop_data = queue.poll();
    
    • pair
      • java에서는 pair연산자를 구현해서 사용한다.
    static class Node {
    	int y;
    	int x;
    	int dict;
    	Node(int y, int x, int dict) {
    		this.y = y;
    		this.x = x;
    		this.dict = dict;
    	}
    }
    
    Queue<Node> queue = new LinkedList<>();
    queue.add(new Node(1,2,3));
    Node node = queue.poll();
    

    Stack

    • push()
    • pop()
    • clear()
    • peek() ⇒ 가상 상단의 값
    • empty()
    • size()
    • contains(1) ⇒ 스택에 1이 있다면 true
    import java.util.Stack;
    Stack<Integer> stack = new Stack<>();
    Stack<String> stack = new Stack<>();
    
    stack.push(1);
    stack.push(2);
    
    int a = stack.peek();
    stack.pop(();
    
    
    import java.io.*
    
    Scanner sc = new Scanner(System.in);
    
    int n = sc.nextInt();
    String str = sc.next();
    
    public class main {
    	public static void main(String[] args) {
    
    	}
    }
    
    static class Node {
            int x, y, z;
            Node(int x, int y, int z) {
                this.x = x;
                this.y = y;
                this.z = z;
            }
        }
    
    double avg = 3.14521984;
    Math.round(avg); // 첫째자리 반올림
    Math.round((avg*100)/100.0); // 3.14
    Math.round((avg*1000)/1000.0); // 3.145
    Math.abs(-1); // 1
    
    int count = Collections.frequency(list, 3); // list에서 3의 개수 찾기
    int temp = Integer.parseInt(str);
    
    char[] chars = str.toCharArray(); // 문자열을 캐릭 
    Character.isDigit(chars[i]); // char가 숫자인지 판별
    
    list.set(1, 3); // 1인덱스의 원소를 3이라는 값으로 바꾼다.
    Collections.sort(list, reverseOrder()); // 내림차순 정렬
    
    // 2차원 리스트 생성과 초기화
    List<List<Integer>> alist = new ArrayList<>();
    for(int i = 0; i < n; i++) {
    	List<Integer> temp = new ArrayList<>();
    	for(int j = 0; j < n; j++) {
    		temp.add(sc.nextInt());
    	}
    	alist.add(temp);
    }
    
    alist.add(0, 3); // 0인덱스에 3을 추가한다. 뒤의 데이터는 한칸씩 밀린다.
    

Designed by Tistory.