수포자는 수학을 포기한 사람을 줄인 표현입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다.1번 수포자가 찍는 방식 : 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ...2번 수포자가 찍는 방식 : 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ...3번 수포자가 찍는 방식 : 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ...1번 문제부터 마지막 문제까지의 정답이 순서대로 저장된 배열 answers가 주어졌을 때 가장 많은 문제를 맞힌 사람이 누구인지 배열에 담아 반환하도록 solution( ) 함수를 작성하세요.제..
분류 전체보기
정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 2개의 수를 뽑아 더해 만들 수 있는 모든 수를 배열에 오름차순으로 담아 반환하는 solution( ) 함수를 완성하세요.제약 조건numbers의 길이는 2 이상 100 이하입니다.numbers의 모든 수는 0 이상 100 이하입니다.입출력의 예풀이 - map과 list를 통한 풀이import java.util.*;class Solution { public List solution(int[] numbers) { List list = new ArrayList(); Map map = new HashMap(); for(int i=0; i풀이 - HashSet과 Stream을 활용한 풀이..
정수 배열을 하나 받습니다. 배열의 중복값을 제거하고 배열 데이터를 내림차순으로 정렬해서 반환하는 solution( ) 함수를 구현하세요.제약조건배열 길이는 2 이상 1,000 이하입니다.각 배열의 데이터 값은 -100,000 이상 100,000 이하입니다.입출력의 예코드 리뷰import java.util.Arrays;import java.util.Collections;class Solution { private static int[] solution(int[] arr) { // ❶ 중복값 제거 Integer[] result = Arrays.stream(arr).boxed().distinct().toArray(Integer[]::new); // Arrays.stream() stream으..
접근하는 경우에는 임의 접근이라는 방법으로 모든 위치에 있는 데이터를 단번에 접근할 수 있으므로, 데이터에 접근하기 위한 시간 복잡도는 O(1)하지만 데이터를 어디에 저장하느냐에 따라 추가 연산에 대한 시간복잡도의 차이게 존재한다맨 뒤에 삽입하는 경우다른 데이터 위치에 영향을 주지 않음시간 복잡도는 O(1)맨 앞에 삽입하는 경우기존 데이터들을 뒤로 한 칸 씩 밀어냄데이터 개수가 N개 일 때, 시간 복잡도 O(N)중간에 삽입하는 경우해당 뒤의 데이터를 뒤로 한칸 씩 밀어내야함현재 삽입한 데이터 뒤에 있는 데이터 개수만큼 미는 연산밀어야하는 데이터 개수가 N개일 때 시간 복잡도O(N)고려사항배열의 경우 데이터에 자주 접근하거나 읽어야 하는 경우 좋은 성능을 낼 수 있지만 메모리 공간을 충분히 확보해야하는 단..
Lambda Expression (람다식)자바 1.8 버전에서 추가된 메서드다른말로 익명 함수(anonymous function)이라고 함이름이 없는 함수를 말하며 코드에서 딱 한 번 실행할 목적으로 사용하거나함수 자체를 다른 함수의 인수로 전달 할 때 사용 private static class Node { int dest, cost; public Node(int dest, int cost) { this.dest = dest; this.cost = cost; }}public static void main(String[] args) { Node[] nodes = new Node[5]; nodes[0] = new Node(1, 10); nodes[1] = new Node(2, 20); ..
참고 책문자열은 문자들을 집합의 형태로 구성한 이뮤터블 객체Immutable 이뮤터블 객체값을 변경할 수 없는 객체를 의미문자열 추가 삭제문자열은 이뮤터블 객체이므로 기존 객체를 수정하는 것이 아니라 새로운 객체를 반환함String string = "He"; // ➊string += "llo"; // ➋System.out.println(string); // "Hello"그러므로 시간복잡도는 단순히 1번의 과정이 아니라1. 새로운 객체 생성2. "He" 값을 하나씩 복사 (2개 복사)3. "He" 뒤에 "llo" 저장 (3개 저장)시간 복잡도는 문자열의 길이가 N일 때, O(N)문자열 수정새로운 객체를 생성하지 않을 시엔 replace()를 사용한다StringBuffer..