전체 글 161

[ 수학 ] 백준 17427 약수의 합 2 kotlin

문제 링크 17427번: 약수의 합 2 두 자연수 A와 B가 있을 때, A = BC를 만족하는 자연수 C를 A의 약수라고 한다. 예를 들어, 2의 약수는 1, 2가 있고, 24의 약수는 1, 2, 3, 4, 6, 8, 12, 24가 있다. 자연수 A의 약수의 합은 A의 모든 약수를 더 www.acmicpc.net 💡문제 분석 요약 자연수 A의 약수의 합은 f(A)이다. x보다 작거나 같은 모든 자연수 y의 f(y)값을 더한 값은 g(x)이다. 자연수 N이 주어졌을 때, g(N)을 구해야한다. 1부터 N까지 각 숫자에 대하여 그 숫자의 모든 약수들의 합을 구해야 한다. n 의 상한(0 < n

[ DP ] 백준 15988번 1, 2, 3 더하기 3, Kotlin

문제 링크 15988번: 1, 2, 3 더하기 3 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 1,000,000,009로 나눈 나머지를 출력한다. www.acmicpc.net 💡문제 분석 요약 n 이 1, 2, 3의 합으로 표현될 수 있는 방법의 수를 찾는 것이다. 문제 n 을 구성하려면 명시적으로 두 개 이상의 숫자가 필요하다. n 의 상한(0 < n 3에 대하여 dp[i] = dp[i-1] + dp[i-2] + dp[i-3]가 된다. (dp[1] = 1, dp[2] = 2, dp[3] = 4.) 💡코드 const val MOD = 1_000_000_009 fun main() { val T = readLine()!!.toInt() val dp = LongArray(1_000..

[ 그리디 ] 백준 1783 병든 나이트

백준 알고리즘 문제 원본 1783번: 병든 나이트첫째 줄에 체스판의 세로 길이 N와 가로 길이 M이 주어진다. N과 M은 2,000,000,000보다 작거나 같은 자연수이다.www.acmicpc.net 방문할 수 있는 칸의 최대 개수를 구하는 문제는 조건에 따라 다양한 접근 방식이 필요하다. 이번 문제해결의 핵심은 체스판의 크기와 나이트의 이동 규칙을 분석하는 것이었다.문제 이해 병든 나이트는 4가지 방법으로만 이동할 수 있다.2칸 위로, 1칸 오른쪽1칸 위로, 2칸 오른쪽1칸 아래로, 2칸 오른쪽2칸 아래로, 1칸 오른쪽이동 횟수가 4번 이상일 경우, 4가지 이동 방법을 모두 사용해야 한다. 이러한 제약 아래에서 나이트가 체스판에서 방문할 수 있는 최대 칸 수를 찾아야 한다.해결 전략문제 해결을 위해 ..

[ WIL ] 3-1 취준, 앞으로의 계획

이번주 월요일(2월 26일) 나는 애정의 에이블랩스에서 퇴사를 했다. 떠나기 전까지 나는 도움을 준 모든 동료분들께 따로 찾아가 감사의 인사를 전한 뒤, 에이블랩스를 떠났다. 모두에게 한번에 인사를 했더라면 이정도까지 아쉬운 마음이 들지는 않았을텐데, 감사했던 분들께 인사를 하다보니 꽤나 울컥하고, 많이 아쉬웠던 기억이 난다. 아침에 일어나 출근은 안하니 내가 느낌이 이상하다. 눈을 뜰 활력소를 잃어버린 것 같아 속상하다. 할일은 많은데 내가 아직 정신을 못차리고 있는게 아닌가 싶다. 정신을 바짝 차리고자, 노션을 활용하여 내가 해야할일들과 일정을 정리하고 하나씩 해나가고 있는데 이상하게 생각대로 잘 안된다. 그래서 요즘엔 이상하게 책을 자꾸만 찾게된다. 책을 읽다보면 내가 어떻게해야할지 힌트를 얻는 것..

회고/WIL 2024.03.01

3개월 스타트업 개발자 인턴을 마무리하며, 느낀점

인턴의 시작지난 23년 겨울, 나는 실험실 자동화 도메인을 다루는 스타트업의 채용연계형 인턴으로 입사를 했다. 그리고 24년 2월 26일, 나는 퇴사를 하게 되었다. 첫 스타트업에 대한 도전의 시간동안, 정말 많은 일들이 일어났었다. 도전적인 일, 새로운 경험을 해볼 수 있는 일, 불합리한 일 등 좋고 힘든 일이 (정말) 많았다. 하지만 결과적으로는 정말 재밌었다.(무진장 힘들었지만..)비록 이번에는 아쉽게 됬지만, 또 도전해보고 싶다. 그래서 그런지 글을 작성하는 이 시점에는 아쉬움의 감정이 정말 많이든다. 지인이 보내준 유튜브 영상은, 이 기업에 대한 엄청난 관심을 갖게 만들었다. 특히, 대표의 분명한 목표와 실행력, 이것만으로도 나는 정말 이곳에서 일해보고 싶었다. 그리고 관련된 모든 자료를 찾아보..

회고 2024.02.27

[ JPA ] 다양한 어노테이션을 사용한 효과적인 엔터티 매핑_2.연관관계 매핑

DB 테이블에서는 관계에서 방향의 개념이 존재하지 않다. DB 테이블에서는 특정 테이블을 기준으로 원하는 정보를 JOIN하여 조회하기 때문이다. 즉, DB 테이블에서는 테이블 사이의 연관관계를 FK(외래 키)로 맺을 수 있고 방향 상관없이 조회가 가능하다. 하지만, 객체에서는 다른 엔터티의 정보를 갖고있지 않다면 조회(참조)가 불가능하다. 이로인해 DB 테이블에서는 없는 단방향, 양방향와 같은 방향의 개념이 존재한다. 따라서 DB 테이블에 실제 칼럼으로 존재하지는 않지만 Entity 상태에서 다른 Entity를 참조하기 위해 방향을 설정한다. OverView - 연관관계 어노테이션 - @OneToOne - @ManyToOne - @OneToMany - @ManyToMany 연관관계 어노테이션 JPA 는 ..

개인공부 2024.02.12

[ JPA ] 다양한 어노테이션을 사용한 효과적인 엔터티 매핑_1.객체와 테이블 매핑

JPA 어노테이션을 효과적으로 사용하는 방법을 아는 것은 애플리케이션에서 데이터베이스와의 상호작용을 최대한으로(아마도) 잘 활용하기 위해서는 필수적이라고 생각한다. 그리고 나는 이 작업을 잘하고 싶다. 그래서 이번 정리를 통해, JPA 어노테이션을 카테고리별로 나눠 정리함으로써, JPA 를 활용한 모델링을 더 잘 이해하고 활용할 수 있을 것이라고 기대한다. 객체와 테이블 매핑 어노테이션 객체(Entity)와 데이터 베이스의 Table 을 매핑 할 때에는 주로 다음과 같은 어노테이션이 사용된다. @EntityJPA 에서 테이블에 매핑할 클래스에 붙인다. 이 어노테이션이 붙은 클래스는 엔티티로 불린다.privaet 혹은 protected 인 기본 생성자(default constructor)를 반드시 작성해야..

개인공부 2024.02.12

[ JPA ] JPA Entity, EntityManagerFactory, EntityManager, Persistence context

개요 이번 정리에서는 JPA를 이해하고 사용하기 위한 내용으로, JPA의 엔티티 매핑, 엔티티 매니저 팩토리와 엔티티 매니저의 역할 및 사용법, 그리고 영속성 컨텍스트의 이해와 작동 원리에 대한 설명 을 중심으로 정리 한다. 내용 구성 - JPA Entity 생성 - 엔티티 매니저 팩토리(EntityManagerFactory) - 엔티티 매니저(EntityManager) - 영속성 컨텍스트(Persistence context) JPA Entity 생성 @Entity // DB 테이블과 매핑 대상 @Table(name="user") // user 테이블과 매핑 public class User { @Id // 식별자에 대응 private String email; // email 칼럼과 매핑 private S..

개인공부 2024.02.11

[ JPA ] JPA 에 관하여

개요나는 Spring 프로젝트를 만들어보면서 JPA 를 사용해 보았다.(정확히는 Spring Data JPA) 프로젝트에서 JPA 를 사용하면서, JPA 에 대한 기초적인 지식의 부족함을 느껴 이번 JPA 공부와 정리를 통해 올바른 JPA 를 사용할 수 있도록 노력해보고자 한다. JPA 에 관한 내용 정리는 공식 문서, 유튜브 영상, 인프런 강의, 책, 프로젝트를 진행하면서 알게된 내용을 참고하여 정리해볼 계획이다.내용 구성 - JPA 란 - JPA 특징 - Hibernate 설정 JPA 란JPA는 자바 개체와 관계형 DB 간의 맵핑 처리를 위한 API이며, ORM 스펙의 일부다.JPA는 2.2 버전까지는 Java Persistence API로 불렸으나, 3.0 버전부터는 Jakarta Persisten..

개인공부 2024.02.11

일잘하는 사람들의 소통법

개요 "YouTube 콘텐츠에서 효과적인 의사소통 방법에 대한 내용을 보고 요약한 후, 의사소통 능력을 향상하기 위한 팁을 공유하기 위해 핵심 내용을 정리했습니다." 나는 최근들어 소통과 관련하여, 다양한 피드백을 듣고 있다. 피드백에는 긍정적인 피드백도 있지만 내가 부족한 부분에 대한 피드백도 많이 듣고 있다. 긍정적인 부분은 소통에 적극적이고, 피드백을 수용하려는 자세에 대한 내용이었고, 내가 개선해야 할 부분에 대한 내용은 소통과정에 있어 PR 의 능력이 부족하다는 것이었다. 이에 더해 작성한 문서가 보기 힘들다는 피드백을 받았다. 이와 관련하여 나의 장점은 더욱 더 증진시키고, 부족한 부분을 채우고자 이와 관련된 유튜브 영상을 찾아보게 되었고, 해당 내용을 정리하였다. 유튜브 링크: 일 잘하는 사..

개인공부 2024.02.09