[프로그래머스/Java] 폰켓몬 문제 나의 풀이import java.util.HashSet;class Solution { public int solution(int[] nums) { HashSet set = new HashSet(); for (int num : nums) { set.add(num); } int max = nums.length / 2; return Math.min(set.size(), max); }} study/Algorithm 2025.03.10
CS 면접 예상 질문 - Spring(1) Bean 객체와 Bean 생명주기에 대해 설명해주세요.더보기-> Bean 객체란 스프링 컨테이너에서 관리되는 객체로, @Component, @Service, @Repository, @Controller 등으로 등록됩니다.Bean 생명주기는 IOC (Inversion of Control) 컨테이너에 의해 관리되는 객체의 생성부터 소멸까지의 과정을 말합니다. Bean 생명주기객체 생성 (@Component 등으로 등록)의존성 주입 (@Autowired 등으로 주입)초기화 (@PostConstruct 사용 가능)사용소멸 전 작업 (@PreDestroy 사용 가능)Spring에서 Bean을 싱글톤으로 관리하는 이유는 무엇인가요?-> 객체 생성을 최소화해 메모리 사용을 줄이고, 성능을 최적화하기 위함입니다.Bea.. study/CS 2025.03.05
Java에서 return문 누락으로 발생하는 오류와 해결 방법 문제 발생 배경Java로 코딩 테스트 문제를 풀다 보니, missing return statement 오류가 발생했다.오류의 원인과 해결 방법에 대해 알아본다. 문제 설명프로그래머스의 "나머지가 1이 되는 수 찾기" 문제를 풀고 있었다.이 문제는 주어진 자연수 n에 대해 n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x의 값을 반환하는 문제이다.처음 코드 작성 시, 다음과 같이 return -1; 을 사용하지 않고 문제를 풀었다.class Solution { public int solution(int n) { for (int x = 2; x 이 코드에서 return -1;을 사용하지 않아서 missing return statement 오류가 발생했다. 문제 분석메서드의 반.. study/Java 2025.03.05
CS 면접 예상 질문 - Java(3) Java의 직렬화와 역직렬화에 대해 설명해주세요.더보기-> 직렬화는 객체를 바이트 형태로 변환하여 저장하거나 네트워크로 전송할 수 있게 만드는 과정이고,역직렬화는 바이트 데이터를 다시 객체로 변환하는 과정입니다. 직렬화가 필요한 이유는 무엇인가요?-> 객체를 저장하거나 네트워크를 통해 전송하기 위해 필요합니다.Java에서 직렬화와 역직렬화를 어떻게 구현하나요?-> ObjectOutputStream과 ObjectInputStream을 사용하여 구현합니다.직렬화를 위해 어떤 인터페이스를 구현해야 하나요?-> Serializable 인터페이스를 구현해야 합니다.직렬화에서 transient 키워드는 어떤 역할을 하나요?-> transient 키워드를 붙인 필드는 직렬화에서 제외됩니다.역직렬화 시 예외가 발생할 .. study/CS 2025.03.04
CS 면접 예상 질문 - Java(2) Java의 제네릭에 대해 설명해주세요.더보기-> 제네릭은 타입을 매개변수로 사용할 수 있게 하여 코드의 재사용성과 타입 안정성을 높이는 기능입니다.예를 들어, List는 String 타입만 저장하도록 제한할 수 있습니다.제네릭을 사용하면 어떤 장점이 있나요?→ 타입 안정성을 확보하고, 불필요한 형변환을 줄여 코드의 가독성을 높일 수 있습니다.제네릭을 사용하지 않으면 어떤 문제가 발생할까요?->타입 안정성이 보장되지 않아 형 변환 오류가 발생할 수 있고, 코드의 가독성과 재사용성이 떨어집니다.제네릭은 컴파일 타임에만 적용된다고 하는데, 런타임에는 어떤 영향을 미칠까요?-> 런타임에는 제네릭 정보가 사라지고 Object로 처리됩니다. 자바의 동시성 문제와 멀티쓰레드에 대해 설명하고 해결방법을 말씀해주세요.더.. study/CS 2025.02.26
CS 면접 예상 질문 - Java(1) 싱글톤 패턴이란 무엇인가요?더보기-> 하나의 클래스에서 단 하나의 객체만 생성되도록 보장하는 디자인 패턴입니다. 주로 전역 상태 관리나 자원 절약을 위해 사용됩니다. JVM이 무엇인가요?더보기-> Java Virtual Machine의 약자로, 자바 바이트코드를 실행하는 가상 머신입니다. 자바 프로그램이 플랫폼 독립적으로 실행될 수 있도록 해줍니다. 자바 메모리 영역에 대해서 설명해주세요.더보기-> JVM은 메소드 영역, 힙 영역, 스택 영역, PC 레지스터, 네이티브 메소드 스택으로 구성됩니다.클래스 정보와 메서드는 메소드 영역, 객체는 힙, 지역 변수와 호출 정보는 스택에 저장됩니다. 오버로딩과 오버라이딩의 차이점을 설명해주세요.더보기-> 오버로딩은 같은 이름의 메서드를 여러 개 정의하는 것이고, 오.. study/CS 2025.02.25
for문 for문이란?특정 조건에 따라 연산을 반복해서 수행하고 싶을 때 사용하는 문맥형태 -> for ( 초기값; 조건문; 증가연산 ) { ( 연산) } 초기값이 조건문을 만족할 때 까지 연산을 수행하면서 회차마다 증가연산을 수행한다.// for 문for(int i=0; i study/Java 2025.02.20
[프로그래머스/Java] 짝수의 합 문제 나의 풀이class Solution { public int solution(int n) { int answer = n * (n + 2) / 4; return answer; }} 처음에는 짝수 n이 주어지는 것으로 잘못 이해했다.그래서 문제 조건에 맞게 코드를 다시 작성하려 했지만, 쉽게 떠오르지 않았다. 정답class Solution { public int solution(int n) { int answer = 0; for(int i=2; i 사실, for문을 사용하여 2부터 더해주면 되는 간단한 문제였다. 그리고 for문에 대한 추가 학습이 필요하다고 느껴 관련 내용을 공부했다. -> [for문 글 링크] study/Algorithm 2025.02.20
2025.02.17.월 TIL 오버라이딩메서드의 {} 안쪽 내용만 변경 가능다형성조상 타입 참조 변수로 자손 타입 객체를 다루는 것Tv t = new SmartTv(); 와 같이 타입 불일치 가능SmartTv s = new Tv(); 불가능 study/TIL 2025.02.17
2025.01.11.토 TIL //Spring 기초 6주차 DB 실습CREATE TABLE student( id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '학생 식별자', name VARCHAR(100) COMMENT '이름', age INT COMMENT '나이', grade VARCHAR(10) COMMENT '등급');CREATE TABLE major( id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '전공 식별자', name VARCHAR(50) NOT NULL COMMENT '이름', tutor VARCHAR(50) NOT NULL COMMENT '튜터');CREATE TABLE enrollment( id BIGINT.. study/TIL 2025.01.13