1. 디버깅은 왜 중요할까? 1) 디버깅의 중요성 코딩 테스트에서 떨어졌을 때의 유형 학생1) index 범위 1개 차이로 떨어졌어!! 학생2) 계속 답이 나오지 않아 몇 시간 동안 헤맸는데, 알고보니 int를 long으로만 바꾸면 되는거였어!! → 디버깅을 제대로 했다면 아마 코딩 테스트에 통과했을 것! 디버깅은 코딩 테스트에 필요한 기술이고, 그냥 알아두기만 하면 되는 것이 아니라 문제를 풀면서 반드시 해야 하는 과정이다. 반드시 디버깅을 익힌 후에 코딩 테스트에 응시하라! 2) 디버깅하는 법 방법 코드에서 디버깅하고자 하는 줄에 중단점(break point)을 설정하고, IDE의 디버깅 기능을 실행해 진행하면 된다. 구체적인 방법은 다음과 같다. 코드에서 디버깅하고자 하는 줄에 중단점을 설정. 이때..
1-1 시간복잡도 표기법 알아보기 알고리즘에서 시간복잡도: 주어진 문제를 해결하기 위한 연산 횟수 일반적으로 수행 시간은 1억 번의 연산을 1초의 시간으로 간주 예제) 시간제한 2초 → 2억 연산 안에 답이 나와야 함. 1) 시간 복잡도 유형 빅-오메가(Ω(n)): 최선일 때(best case)의 연산 횟수를 나타낸 표기법 빅-세타(θ(n)): 보통일 때(average case)의 연산 횟수를 나타낸 표기법 빅-오(Ο(n)): 최악일 때(worse case)의 연산 횟수를 나타낸 표기법 public class timeComplexityExample1 { public static void main(String[] args) { // 1 ~ 100 사이의 값 랜덤 선택 int findNumber = (int..
1. 오늘의 고민 오늘은 알고리즘 공부 방향에 대한 생각에 많은 시간을 투자하였다. 인터넷을 찾다가 본 누군가의 말로 알고리즘을 파이썬으로 시작하였고, 공부는 성향상 백엔드가 적성에 맞아 자바, 스프링을 배워 백엔드 개발자가 되고자 한다. 그래서 최근에는 알고리즘 공부를 파이썬과 자바 두가지 언어로 모두 시행하고 있었는데, 시간적 여유가 없는 현 상황에 선택을 해야한다는 판단을 내렸다. 그래서 여러번 서칭하고 고민하다가, 당장 파이썬으로 풀 때보다 번거롭고 힘들더라도 내가 주력언어로 삼고 싶고 공부하고 있는 자바로 해야겠다는 결론을 내릴 수 있었다. 많은 사람들이 말하길, 언어는 수단이라고 한다. 한가지 언어를 깊게 공부하고 습득하면 다른 언어는 배우기가 쉬운 구조라고 한다. 나는 아직 자바, 파이썬 무..
1. 기본값 타입 1) JPA의 데이터 타입 분류 엔티티 타입 @Entity로 정의하는 객체 데이터가 변해도 식별자로 지속해서 추적 가능 예) 회원 엔티티의 키나 나이 값을 변경해도 식별자로 인식 가능 값 타입 int, Integer, String처럼 단순히 값으로 사용하는 자바 기본 타입이나 객체 식별자가 없고 값만 있으므로 변경시 추적 불가 예) 숫자 100을 200으로 변경하면 완전히 다른 값으로 대체 2) 값 타입 분류 기본값 타입 자바 기본 타입(int, double) 래퍼 클래스(Integer, Long) String 예) String name, int age 생명주기를 엔티티에 의존 회원을 삭제하면 이름, 나이 필드도 함께 삭제 값 타입은 공유하면 안된다. 회원 이름 변경시 다른 회원의 이름..
문제 접근 처음에 문제를 접하고, 큐를 사용한 문제 풀이와 인덱스와 pop을 활용한 문제 풀이 2가지를 생각해보았다. 1. 파이썬(Python) 1) index와 pop을 이용한 문제 풀이 n, k = map(int, input().split()) arr = [i for i in range(1, n + 1)] ans_arr = [] idx = k - 1 # 시작 인덱스를 K-1로 설정 while arr: # 인덱스가 배열의 길이를 초과하는 경우, 인덱스를 배열의 길이로 나눈 나머지로 조정 if idx >= len(arr): idx %= len(arr) remove_elem = arr.pop(idx) ans_arr.append(remove_elem) # 다음 시작 인덱스를 K-1만큼 증가 idx += k ..
2. 즉시 로딩과 지연 로딩 단순히 member 정보만 사용하는 비즈니스 로직 member 클래스 @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "TEAM_ID") private Team team; → 멤버 클래스만 db에서 조회한다는 뜻 JpaMain Member m = em.find(Member.class, member1.getId()); 결과 Hibernate: select member0_.MEMBER_ID as MEMBER_I1_3_0_, member0_.INSERT_MEMBER as INSERT_M2_3_0_, member0_.createdDate as createdD3_3_0_, member0_.UPDATE_MEMBER as UPDATE_M4_..