코딩테스트/JAVA

자바 문법 - 배열, 정렬, set

임지혁코딩 2024. 7. 24. 19:26

1. python 처럼, 배열을 받아와서 split 시키기 

String[] myarr = s.split("")

 

2. 특정 값의 index 불러오기 

myarr.indexOf(값) -> 젤 가까운 값

 

3. valueOf주의 사항. => String.valueOf(바꿀 값)

사실상 . parseInt같은 String 버전이다.

 

4. 배열 정렬

import java.util.Arrays; -> 까먹지 말기

Arrays.sort(배열)

Arrays.sort(배열,Collections.reverseOrder())

 

5.list 정렬?

List<String> list = new LinkedList<String>();
list.add(“김철수”);
list.add(“김영희”);

list.sort();

 

6.char

 

  • 대문자 A-Z: 유니코드 값 65-90
  • 소문자 a-z: 유니코드 값 97-122
    간격 32

7. String 대, 소문자

7-2. 문자 배열 대,소문자

 

 

8. 문자열의 특정 문자열들을 바꾸기

String numbers 일때,

numbers.replace("one",1)

 

9. 코테 풀다 자바의 배열 크기 제한이 거슬린다면?

import java.util.ArrayList;

 ArrayList <Integer> mylist = new ArrayList<>();

mylist.add(i);

        int [] answer = new int[mylist.size()];
        for (int j = 0 ; j<mylist.size(); j++)
        {
            answer[j] = mylist.get(j);
        }
        return answer;

 

10. 백준?

 

import java.util.*;

class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int N = scanner.nextInt();
        int [] Nlist = new int[N];
        for (int i =0; i<N; i++)
            {
                Nlist[i] = scanner.nextInt();
            }

        int M = scanner.nextInt();
        int[] Mlist = new int[M];
        for (int i = 0; i < M; i++) {
            Mlist[i] = scanner.nextInt();
        }

        HashSet<Integer> Nset = new HashSet<>();
        for (int i : Nlist)
            {
                Nset.add(i);
            }

        for (int j: Mlist)
            {
                if(Nset.contains(j))
                {
                    System.out.println(1);
                }
                else{
                    System.out.println(0);
                }
            }
    }
}

 

Scanner scanner = new Scanner(System.in);

출력시는  + " " 와, print,println(한 줄 띄기)를 잘 활용하자.

 

11. set (O(1))

HashSet<Integer> myset = new HashSet<>();

 

myset.add(i)

if (myset.contains(j))

 

차집합

Set<Integer> difference = new HashSet<>(set1);'

difference.removeAll(set2);

교집합

intersection.retainAll(set2);

합집합

union.addAll(set2);

 

이렇게 쓴다. set1.할 일(set2) -> 다시 set1.size()

 

12. 반드시 기억해야 할! array.count(i)를 자바로

Collections.frequency(myarr,i) 

 

13. Character를 INT

Character.getNumericValue(numString.charAt(i))

 

보통은, integer.~~ -> 하면 들어있는게 int로 바뀐다. 

string.valueof()는 int가 string으로 포함한다.

 

하지만 , Character는 원래 없는 객체이고, int도 포함하기 때문에

character.ㅁ -> 로 바꿔줘야한다.

 

14. arraylist -> array로

 String [] answer = new String [resultsub.size()] ;
        for(int j = 0;j<answer.length; j++)
        {
            answer[j] = resultsub.get(j);
        }
-> String[] answer = new String[resultsub.size()]; resultsub.toArray(answer);