본문 바로가기

분류 전체보기

(197)
[프로그래머스 Java] 문자열 내 p와 y의 개수 코딩테스트 연습 - 문자열 내 p와 y의 개수 대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 programmers.co.kr ⏱소요 시간 - 20분 🔑해결 방법 String 클래스의 toLowerCase() / toUpperCase() / equalsIgnoreCase(str) 중에 하나를 골라 사용하면 된다. 대소문자를 통일시켜놓고, charAt(i)을 이용해 i의 값을 배열의 길이만큼 증가시키면서 p나 y가 존재하는지 체크하고 존재하면 cnt를 증가시키는 로직이다. 그리고 마지막에 두 cnt가 같은지 비교하면 ..
char[] <-> String <-> String[] String -> char[] String str = "abcde"; char[] chArr = str.toCharArray(); System.out.println(Arrays.toString(chArr)); // [a, b, c, e, d] String num = "12345"; char[] chArr2 = num.toCharArray(); System.out.println(Arrays.toString(chArr2)); // [1, 2, 3, 4, 5] char[] -> String char[] arr = { 'a', 'b', 'c', 'd' }; String str = String.valueOf(arr); // abcd String -> String[] String str = "abcde" Strin..
[프로그래머스 Java] 문자열 내 마음대로 정렬하기 코딩테스트 연습 - 문자열 내 마음대로 정렬하기 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 [sun, bed, car]이고 n이 1이면 각 단어의 인덱스 1 programmers.co.kr Comparator / Comparable 인터페이스 Comparator / Comparable 인터페이스란? 컬렉션을 정렬하는데 필요한 메서드를 정의한다. 그렇다면 둘의 차이는? Comparable - comparaTo(Object o1) - 기본 정렬 기준 Comparator - compare(Object o1, Object o2.. dblee.tistory.com ⏱소요 시간 - 2시간 동안 삽..
Comparator / Comparable 인터페이스 Comparator / Comparable 인터페이스란? 컬렉션을 정렬하는데 필요한 메서드를 정의한다. 그렇다면 둘의 차이는? Comparable - comparaTo(Object o1) - 기본 정렬 기준 Comparator - compare(Object o1, Object o2) - 다른 정렬 기준 두 메서드의 반환형은 int로 0, 1, -1을 반환한다. o1 == o2 -> 비교하는 두 객체가 같으면 0 o1 비교하는 값보다 작으면 -1, o1 > o2 -> 비교하는 값보다 크면 1 // 기본 정렬 기준 public interface Comparable { int compareTo(Object o1); // 객체 자신(this)과 o1을 비교 } // 다른 정렬 기준 public interface..
[프로그래머스 Java] 두 정수 사이의 합 코딩테스트 연습 - 두 정수 사이의 합 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다. 제한 조건 a와 b가 같은 경우 programmers.co.kr ⏱소요 시간 - 10분 🔑해결 방법 아주 아주 쉬운 문제였다. if문으로 분기해서 풀어보고, 중복된 코드를 줄이기 위해 max, min을 먼저 정해놓는 두 가지 풀이로 풀어보았다. Math.max(a,b) : a와 b 중에 큰 수를 리턴 Math.min(a,b) : a와 b 중에 작은 수를 리턴 🔎소스 코드 package step1; // 두 정수 사이의 합 public class Ex12 {..
[프로그래머스 Java] 나누어 떨어지는 숫자 배열 코딩테스트 연습 - 나누어 떨어지는 숫자 배열 array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하 programmers.co.kr ⏱소요 시간 - 17분 🔑해결 방법 문제 푸는 과정을 먼저 적어놓고 코딩을 해서 금방 풀었던 문제. 문제가 쉽기도 했다. 1. arr[]을 정렬한다. 2. arr[]을 돌면서 각 요소들을 divisor로 나눈 나머지(arr[i] % divisor)가 0이면 arr[i]를 list에 추가한다. 3. 만약 list.size()가 0이면 list에 -1을 추가한다. 4. list를 answer[] 형..
지네릭스 지네릭스란? 컴파일 시 타입을 체크해주는 기능. 지네릭스가 생기기 전에는 컴파일러가 컴파일 단계에서 형변환 에러를 잡지 못하고 런타임 에러가 발생했다. 그래서 컴파일 단계에서 에러가 발생하게 하기 위해 (=컴파일러를 도와주기 위해) 지네릭스가 생겼다. ClassCastException(형변환 에러)이 발생하지 않도록 막아준다. 첫 번째 장점. 타입의 안정성 제공 -> 타입 체크를 정확하게 해 줌 ArrayList는 Object 타입으로 모든 객체를 반환한다. (즉, 다양한 객체를 담을 수 있다는 뜻) 하지만 보통 한 종류의 객체를 담는 경우가 많다. 그래서 아예 지네릭 타입으로 객체를 지정해준다. 지네릭 타입과 일치하지 않는 Audio()를 추가하려고 하면 컴파일 에러가 발생한다. ArrayList tv..
Collection 클래스 정리 ArrayList (new) / Vector (old) - 순서 O, 중복 O (ex. 식당 대기 리스트) - 배열 기반 - 데이터의 추가와 삭제에 불리 - 순차적인 추가와 삭제는 제일 빠름 - 임의의 요소에 대한 접근성이 뛰어남 LinkedList - 순서 O, 중복 O - 연결 기반 - 데이터의 추가와 삭제에 유리 - 임의의 요소에 대한 접근성이 좋지 않음 HashMap - 순서 X, 키 중복 X, 값 중복 O (ex. 아이디와 비밀번호) - 배열과 연결이 결합된 형태 - 추가, 삭제, 검색, 접근성이 모두 뛰어남 - 특히 검색에 최고 성능 TreeMap - 순서 X, 키 중복 X, 값 중복 O - 연결 기반 - 정렬과 범위 검색에 적합 (검색은 HashMap이 나음) Stack - LIFO - 배열..