본문 바로가기
to be 개발자

코딩테스트 / 알고리즘 연습하기 - 자바 / 라이브러리 / 배열 / List

by 아셀acell 2021. 5. 6.
반응형


코딩테스트는 보통 배열을 많이 활용해서 값을 구해야하고 
그밖에 반복문, 조건문 등을 활용해야 하는데 

일단 리스트를 사용하기 위해서는 라이브러리를 import 해줘야 한다.

 

java.util.*;

java.util.ArrayList;

java.util.List;

 

그리고 리스트를 새로 생성해줘야 한다.

List<Integer> list = new ArrayList<>();

 

활용할만한 명령어도 알고 있어야 한다.

add(값) 리스트에 값 추가 

list.add(5); //인데스번호 0

list.add(6); //1

list.add(7); //2

 

add(인덱스번호, 값) : 리스트의 인덱스번호에 값 추가. 
해당번호에 값이 들어가고 해당번호 원래숫자 포함 뒤의 숫자들은 자리값이 1씩 증가. 뒤로 밀리는 것.

list.add(1,3); //끼워넣기. 밀어내기.

 

get(인덱스번호) : 리스트에서 인덱스번호의 값을 가져온다.

System.out.println(list.get(0));

 

remove(인덱스번호) : 리스트에서 인덱스번호를 지운다

list.remove(0);

System.out.println(list.get(0)); // 리스트는 중간이 비면 한칸식 당김.

 

indexOf(값) : 리스트에서 값이 있는 인덱스번호를 취득한다. 없으면 -1

System.out.println(list.indexOf(5));

 

contains(값) : 리스트에서 값 있는지 확인. boolean으로 결과 표시 

System.out.println(list.contains(5));

 

set(인덱스번호, 값) : 리스트에서 인덱스번호에 값을 주어진 값으로 변경

list.set(1, 10);

System.out.println(list.get(1));

 

clear() : 리스트를 비운다 

list.clear();

 

isEmpty() : 리스트가 비어있는지 확인 

System.out.println(list.isEmpty());

 

size() : 리스트의 개수 제시

list.size();

 

for(int data : list) { System.out.println(data); }

반복문으로 리스트 데이터 하나씩 출력하는 데 좀더 쉬운 방법 (초기값 종료값 증감값 필요없는 방법이니까)

 



일반적으로 오름차순 정렬 sort 하는 법은 아래와 같고 

for(int i=0;i<list.size()-1;i++){
   for(int j=i+1;j<
list.size();j++) {
      if(
list.get(i)>list.get(j)){
         int temp=
list.get(i);

         list.set(i,list.get(j));

         list.set(j,temp);
      }

   }
}

list 아니고 array의 경우 Arrays.sort() 사용해서 정렬 할 수 있는데
이건 배열로만 할 수 있어서 복잡한 문제 풀때는 리스트가 유리하니까 
쓰기 어려울 수도 있을 것 같다.

 

java.util.*;

java.lang.*;

java.io.*;

 

-

 

Integer[] arr = {2,3,1,4};

Arrays.sort(arr); => 1,2,3,4

Arrays.sort(arr, Collections.reverseOrder()); => 4,3,2,1

 

String[] arr2 = { "고래", "다람쥐", "나비" };

Arrays.sort(arr); => "고래", "나비", "다람쥐"

Arrays.sort(arr, Collections.reverseOrder()); => "다람쥐", "나비", "고래"

 

 

그리고 그동안 나는 써보지는 않았지만 혹시 필요한 경우가 있을까 하여 
올림, 버림, 반올림, 랜덤에 대해 정리해보자면 

 

java.util.ArrayList;

java.util.List;

java.util.Random;

 

-

float a = 3.1415f;
int b = -17;

 

Math.ceil(값) : 올림

System.out.println(Math.ceil(a));//4.0

 

Math.floor(값) : 버림 

System.out.println(Math.floor(a));//3.0

 

Math.round(값) : 반올림 

System.out.println(Math.round(a));//3

 

이때 보면 올림, 버림은 실수로 결과가 나오고 반올림은 정수로 나온다.

 

Math.abs(값) : 절대값

System.out.println(Math.abs(b));//17 (마이너스도 없어짐)

 

Math.random() : 0.0 ~ 0.999999~~ 까지 난수(정해지지 않은수)생성

System.out.println(Math.random());//0.162723…(소수점 15개)

 

Math.floor(랜덤*범위)+시작값 => 올림/반올림과 달리 버림은 0.0~0.9가 되므로 0~9를 뽑아낼 수 있음. 

System.out.println(Math.floor(10*Math.random())+1); => 1~10

 

혹은 랜덤값을 생성 가능
Random r = new Random();

r.nextInt(값) => 0 ~ 값 전까지 (값은 포함 안함) 랜덤값 출력 
r.nextInt(10) + 1 => 1~10  

 

 

 

 

 

728x90
반응형
LIST

댓글