목록분류 전체보기 (135)
100세까지 코딩
java.util.Arrays Arrays 클래스는 배열에 대해 정렬, 검색, 비교 등의 메서드를 제공한다. 대표적인 메서드를 알아보자. 1) Arrays.Sort(arr) import java.util.*; public class Main { public static void main(String[] args) { int [] arr = {1,2,3,4,7,9,6,5,8,10}; Arrays.sort(arr); for(int i = 0; i < arr.length; i++) { System.out.print(arr[i]+" "); } } } 결과 : 가장 많이 쓰인다해도 과언이 아니다. arr 배열을 오름차순으로 정리해 주는 기능이다. 1-1) Arrays.Sort(arr,Collections.reve..
한눈에 정리 함수 설명 Integer.parseXXX() 기본 타입인 int 타입을 반환. Integer.valueOf() Integer 래퍼 객체를 반환. toString() 대상이 null이면 Null PointException(NPE)를 발생. String.valueOf() 대상이 null이면 문자열 "null"을 만들어서 반환. 1) 기본 타입 vs 참조 타입 기본 타입은 byte, char, boolean, int, long 등 데이터의 실제 값이 저장되는 것들이다. 참조 타입은 String이나 객체 등 데이터가 저장된 위치 주소 값이 저장되는 것들이다. 2) Wrapper 클래스 기본 자료타입을 객체로 변환하기 위해서 사용하는 것이 래퍼 클래스이다. 모든 기본 타입은 래퍼 클래스로 변환할 수 ..
한눈에 정리 String StringBuffer StringBuilder 가변 여부 X O O 연산 속도 느림 중간 빠름 동기화 O O X 스레드 세이프 O O X 저장 위치 String pool Heap Heap 1) String 문자열을 대표하기 때문에 조작에 필요한 대부분의 기능들을 제공한다. 또한, 레퍼런스형 변수이지만 기본 자료형처럼 선언할 수 있다. String은 다른 클래스와 달리 한번 메모리 공간에 할당되면 불변이다. 즉, +연산이나 replace등 문자열을 조작하면 새로운 String 객체를 만들어 바뀐 문자열을 저장하고 그 객체를 참조한다. 그리하여 문자열 연산이 많은 경우 성능이 좋지 않다. 간단하게 사용할 수 있고 동기화를 통한 스레드 세이프를 지원한다는 장점이 있다. 2) Stri..
문제 설명 풀기 전 생각 attedance가 true인 학생들의 index값(번호)을 배열리스트에 저장하기 2차원 배열을 만들어 등수와 번호를 함께 저장 등수를 기준으로 오름차순 정렬하여 top 3명의 번호를 구하기 class Solution { public int solution(int[] rank, boolean[] attendance) { ArrayList arr = new ArrayList(); int answer = 0; for(int i = 0; i < rank.length;i++){ if(attendance[i]){ // true면 arr.add(i); // index값을 넣어줌 } } int[][] rankArray = new int[arr.size()][arr.size()]; // 2차원..
문제 설명 풀기 전 생각 먼저 배열을 오름차순 정리를 한 뒤, 주어진 n 값과 가장 차이가 없는 값 (min)을 구하기 min값을 배열 처음에 넣고 min값을 기준으로 오른쪽, 왼쪽 거리 비교해 나가기 오름차순이니깐 left, right 거리가 같으면 right를 우선 배치 왼쪽이나 오른쪽이 끝지점에 다다르면 반대편 나머지 값을 순차적으로 복사해 주기 class Solution { public int[] solution(int[] numlist, int n) { int[] answer = new int[numlist.length]; int nearIndex = 0; // n값과 가장 가까운 값의 index int min = 10000; // n값과 가장 가까운 값 int k = 0; // 정답 배열에 넣..
문제 설명 풀기 전 생각 최대 r자릿수만큼 String을 만들어 각각 자리에 0과 5를 대입하려고 생각 하지만 그 방법을 2시간 고민했지만 안 나옴.. 고민하다가 깨달은 규칙은 처음에 5를 넣고 그 후 10을 곱하여 앞에 들어간 숫자들을 각각 더하면 5와 0으로 만들어진 숫자들로만 구성 5와 0으로 만들어진 list를 l과 r로 시작점과 끝점을 찾아 배열에 복사해 주기 class Solution { public int[] solution(int l, int r) { ArrayList list = new ArrayList(); int k = 5; int start = 0; int end = 0; while(k