전체 글
-
[프로그래머스/JAVA] H-IndexAlgorithm/Java 2025. 1. 24. 20:39
📌 문제 요약 [ 오답 노트 ] ❌ 기존 오답 코드import java.util.*;class Solution { public int solution(int[] citations) { int answer = 0; // 1. 오름차순 정렬 Arrays.sort(citations); // 2. 반복 횟수 세는 반복문 for (int j = 0; j j) { up++; } else if (citations[j] 📌 기존 코드의 문제점 - 문제 조건 잘못 이해"h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학자의 H-Index입니다." 이 문..
-
[CS/JAVA] Set과 Map의 타입이 Wrapper Class가 아닌 Object를 받을 때 / Vector와 List의 차이 / 제네릭 / 제네릭의 불공변성CS/Java 2025. 1. 23. 23:08
• Set과 Map의 타입이 Wrapper Class가 아닌 Object를 받을때 중복 검사는 어떻게 할건지 설명해주세요. hashCode() 메소드를 오버라이딩하여 리턴된 해시코드 값이 같은지 보고, 해시코드 값이 다르다면 다른 객체로 판단하고,해시코드 값이 같으면 equals() 메소드를 오버라이딩하여 다시 비교합니다. 이 두개가 모두 맞으면 중복 객체입니다. • Vector와 List의 차이를 설명해주세요. 벡터는 데이터 삽입 시 원소를 밀어내지만, 리스트는 노드를 연결만 하기 때문에, 삽입 삭제 부분에서 리스트가 시간복잡도의 우위를 가집니다. 벡터는 랜덤부분접근이 가능하지만 리스트는 더블링크드리스트(노드가 양쪽으로 연결)로 되어있기 때문에 랜덤 접근이 되지 않습니다. 검색적인 측면에서는 벡..
-
[CS/JAVA] Optional API / 컬렉션 프레임워크 / List, Set, Map, Stack, QueueCS/Java 2025. 1. 23. 23:08
• Optional API에 대해 설명해주세요. 개발할 때 가장 많이 발생하는 예외 중 하나가 NPE(Null Pointer Exception) 입니다. NPE를 피하려면 null 여부 검사를 필연적으로 하게 되는데, 만약 null 검사를 해야하는 변수가 많은 경우, 코드가 복잡해지고 번거롭습니다. 하지만, Java8부터 Optional를 제공하여 null로 인한 예외가 발생하지 않도록 도와주고, Optional 클래스의 메소드를 통해 null을 컨트롤 할 수 있습니다. • 컬렉션 프레임워크에 대해 설명해주세요. 다수의 데이터를 쉽고 효과적으로 관리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미합니다. 자바 컬렉션에는 List, Set, Map 인터페이스를 기준으로 여러 구현체가 존재하..
-
[CS/JAVA] 리플렉션(Reflection) / Error와 Exception의 차이 / CheckedException과 UnCheckedException의 차이CS/Java 2025. 1. 23. 23:08
• 리플렉션(Reflection)이란 무엇인지 설명해주세요.리플렉션이란 구체적인 클래스 타입은 알지 못해도 그 클래스의 메소드, 타입, 변수들에 접근할 수 있도록 해주는 자바 API 입니다. • 리플렉션은 어떤 경우에 사용되는지 설명해주세요.코드를 작성할 시점에는 어떤 타입의 클래스를 사용할지 모르지만, 런타임 시점에 지금 실행되고 있는 클래스를 가져와서 실행해야 하는 경우 사용됩니다. 프레임워크나 IDE에서 이런 동적인 바인딩을 이용한 기능을 제공합니다. intelliJ의 자동완성 기능, 스프링의 어노테이션이 리플렉션을 이용한 기능이라 할 수 있습니다. • Error와 Exception의 차이를 설명해주세요.Error는 실행 중 일어날 수 있는 치명적 오류를 말합니다. 컴파일 시점에 체크할 ..
-
[프로그래머스/JAVA] 행렬의 곱셈Algorithm/Java 2025. 1. 23. 15:38
https://school.programmers.co.kr/learn/courses/30/lessons/12949 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 📌 문제 풀이 arr1 [[1, 4], [3, 2], [4, 1]] arr2 [[3, 3], [3, 3]] 배열이 위처럼 주어졌을 때,행렬의 곱셈은 " arr1 행렬 x arr2 행렬 = arr1 행렬의 행 개수 X arr2 행렬의 열 개수 " 를 나타낸다. answer[0][0] = (arr1[0][0] * arr2[..
-
[프로그래머스/JAVA] n^2 배열 자르기Algorithm/Java 2025. 1. 23. 10:18
https://school.programmers.co.kr/learn/courses/30/lessons/87390 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr [ 오답 노트 ]❌ 기존 오답 코드class Solution { public int[] solution(int n, long left, long right) { int[] answer = new int[right - left + 1]; // 1. n행 n열 크기의 2차원 배열 만들기 // n = 3 (3행 3열)일때, // 1 2 3 // 2 2 3 // 3 3 3..
-
[CS/JAVA] static / static을 사용하는 이유 / Inner Class / 내부 클래스를 static으로 해야 하는 이유CS/Java 2025. 1. 22. 21:48
• static에 대해 설명해주세요.static 키워드를 사용한 변수나 메소드는 클래스가 메모리에 올라갈 때 자동으로 생성되며, 클래스 로딩이 끝나면 바로 사용할 수 있습니다. 즉, 인스턴스(객체) 생성없이 바로 사용 가능합니다. 모든 객체가 메모리를 공유한다는 특징이 있고, GC 관리 영역 밖에 있기 때문에 프로그램이 종료될 때까지 메모리에 값이 유지된 채로 존재하게 됩니다. • static을 사용해야 하는 이유에 대해 설명해주세요.static은 자주 변하지 않는 값이나 공통으로 사용되는 값 같은 공용 자원에 대한 접근에 있어서 매번 메모리에 로딩하거나 값을 읽어들이는 것보다 일종의 '전역 변수'와 같은 개념을 통해 접근하는 것이 비용도 줄이고 효율을 높일 수 있습니다. 인스턴스 생성 없이 바로..
-
[CS/JAVA] String, StringBuffer, StringBuilder의 차이 / 접근 제한자 / 클래스 멤버 변수 초기화 순서CS/Java 2025. 1. 22. 21:07
• String, StringBuffer, StringBuilder의 차이를 설명해주세요. String은 불변의 속성을 가지며, StringBuffer와 StringBuilder는 가변의 속성을 가집니다. StringBuffer는 동기화를 지원하여 멀티 쓰레드 환경에서 주로 사용하며,StringBuilder는 동기화를 지원하지 않아 싱글 쓰레드 환경에서 주로 사용합니다. • String 객체가 불변인 이유에 대해 아는대로 설명해주세요. ➀ 캐싱 기능에 의한 메모리 절약과 속도 향상자바에서 String 객체들은 Heap의 String Pool 이라는 공간에 저장되는데, 참조하려는 문자열이 String Pool에 존재하는 경우 새로 생성하지 않고 Pool에 있는 객체를 사용하기 때문에 특정 문자열 값..