본문 바로가기

전체 글1014

에라토스테네스의 체를 활용한 소인수분해 어떠한 수 N을 수인수분해한다고 해보자. 예를들어 60 = 2 x 2 x 3 x 5 이다. 예를들어 입력값이 아래와 같다면 (첫번째 줄에 N = 소인수분해하려는 수의 갯수, 두번째 줄에 소인수분해하려는 수 kn / N은 1 ~ 1,000,000, kn은 2 ~ 5,000,000) N k1 k2 k3... 5 5 4 45 64 54 다음과 같이 각각 한줄로 소인수분해한 값을 출력해야 한다고 해보자. 5 2 2 3 3 5 2 2 2 2 2 2 2 3 3 3 기존에 생각했던 방식은 이하와 같았다. ('더보기') 더보기 내 경우 처음 생각한 방식은, 우선 입력값 N 이하의 모든 소수를 구해두고, 소수 리스트를 순회하며 찾는 방식이었다. 예를들어 N이 60이라면 60 이하의 모든 소수를 우선 구해둔다. 그 후 작.. 2024. 2. 23.
[자바] 백준 3089 - 네잎 클로버를 찾아서 (java) 목차 문제 : boj3089 필요 알고리즘 매개변수 탐색(Parametric Search), 이분탐색, 정렬 2차원에 대한 매개변수 탐색(이분탐색 응용)으로 풀 수 있는 문제이다. 이걸 위해 정렬이 필요하다. 시뮬레이션 M개의 명령에 대해 시뮬레이션을 돌려봐야 최종 결과를 알 수 있다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 R, L, U, D 각각의 명령에 대해 필요한 동작은 다음과 같다. R : 동일 Y축에서 우측.. 2024. 2. 22.
[자바] 백준 1309 - 동물원 (java) 목차 문제 : boj1309 필요 알고리즘 DP (동적계획법, 다이나믹 프로그래밍) 기본적인 형태의 DP 문제이다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 Nx2 칸으로 동물원이 구성된다. N칸의 세로는 우선 생각하지 말고, 2칸인 가로칸의 존재 가능한 상태를 생각해보자. 다음과 같이 4가지 종류로 존재 가능하다. 다만 이 중 (d)는 가로로 붙어 있게 배치할 수 없다고 하였으므로 불가하여 (a)~(c)의 3가지만 이.. 2024. 2. 21.
Map에 mybatis의 map-underscore-to-camel-case가 안먹히는 이유를 알아보자 관련된 질문을 받아 이유를 찾아보기 위해 mybatis 소스를 까보게 되었다. 찾아본김에 혹시 궁금할 사람도 있을 것 같아 어느 부분에 의해 Map을 사용 시 map-underscore-to-camel-case 옵션이 안먹히는지 공유하려고 한다. map-underscore-to-camel-case 사용 이유 테이블의 칼럼명이 phone_number 이런식으로 언더바가 들어간 형태로 되어 있는 경우가 있다. 이걸 받기 위해 dto의 변수도 'String phone_number;' 처럼 언더바가 들어간 형태로 가자니 자바의 기본적인 카멜 케이스 형태랑 안맞아서 멋없다. setter도 'setPHONE_NUMBER' 이런식으로 들어가야하니 더더욱 멋없다. 그래서 String phoneNumber; / setP.. 2024. 2. 21.
[자바] 백준 7588 - Amicable (java) 목차 문제 : boj7588 필요 알고리즘 수학, 정수론 약수 구하는 것과 관련된 정수론 문제이다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 N이 최대 백만이고, 테스트케이스가 존재한다. 따라서 미리 백만까지의 모든 Amicable 쌍을 구해둔 후, 각 테스트케이스마다 알맞게 출력해주면 된다. 여기서 구현이 필요한 부분은 결국 어떠한 수가 주어졌을 때, 그 수의 모든 제수의 합을 구하는 녀석이 필요하다. 이 때, 주어진.. 2024. 2. 19.
[Study 017] 디자인 패턴의 아름다움 스터디 주제 디자인 패턴의 아름다움(완정 저) 매주 정해진 챕터 각자 읽고와서, 게더타운에서 온라인으로 서로 토론 및 이해안되는 부분 질문. 혹은 뭐 추가로 설명할꺼 있으면 자료 준비해와도 됨 (추가 설명 예시 : https://nahwasa.com/entry/TDD-Mock-SOLID-얘기-도시-가스-요금-계산) 참가자 https://github.com/nahwasa https://github.com/mlulucky https://github.com/gwonsiyun https://github.com/daraekita https://github.com/destrg 일정 (진행중) 1주차 2024-02-17 : 1.1 코드 설계를 배우는 이유 / 1.2 코드 품질 평가 방법 (전체적인 내용을 다루는 1장.. 2024. 1. 31.
[세미나] 디버깅, 이슈 해결 생각 과정 예시, 자바 call by value에 대해 세미나 진행했던 pdf 입니다. - 기본적인 디버깅 방법 - 이슈 해결 생각과정 예시 - 자바 call by value와 관련된 생각할만한 부분 에 대해 다룹니다. ppt의 우측 상단 '새 탭에서 보기' 를 누르시면 크게보거나 pdf를 다운받아 보실 수 있습니다. 2024. 1. 29.
[Study 016] 자바 병렬 프로그래밍 스터디 주제 자바 병렬 프로그래밍을 읽고 매주 모여서 토론 및 질문 참가자 https://github.com/nahwasa https://github.com/ohgillwhan https://github.com/woogiekim https://github.com/K-jun98 일정 (진행중) 1주차 2023-12-17 : 1장, 2장 (개요, 스레드 안정성) 2주차 2023-12-31 : 3장, 4장 (객체 공유, 객체 구성) 3주차 2024-01-14 : 5장, 6장 (구성 단위, 작업 실행) 4주차 2024-01-21 : 7장, 8장 (중단 및 종료, 스레드 풀 활용) 5주차 2024-01-28 : 9장, 10장 (GUI 애플리케이션, 활동성을 최대로 높이기) 2024. 1. 23.
[Study 015] Clean Code (클린 코드) 스터디 주제 Clean Code(클린코드, 로버트 C. 마틴 지음)을 읽고 매주 모여서 토론 및 질문. 개인적으로 Study 004 에서도 클린코드를 했었는데, 그 때와 다른 분들과 다시한번 진행해서 좋았음. 그리고 확실히 Study 004 할때와 좀 느낌이 달랐던게, 아 다시보니 확실히 "참고만 해야지, 맹신하면 안되는 책이긴 하구나" 싶었음. 참가자 https://github.com/nahwasa https://github.com/ohgillwhan https://github.com/woogiekim https://github.com/K-jun98 일정 (완료) 1주차 2023-09-24 : 1장, 2장 (깨끗한 코드, 의미 있는 이름) 2주차 2023-10-15 : 3장, 4장 (함수, 주석) 3주.. 2024. 1. 23.
[Study 014] 도메인 주도 개발 시작하기 스터디 주제 도메인 주도 개발 시작하기(최범균 저)를 읽고 매주 모여서 토론 및 질문 참가자 4명 일정 (완료) 1주차 2023-06-26 : ~1장 2주차 2023-07-03 : 2장 3주차 2023-07-10 : 3장 4주차 2023-07-17 : 4장 5주차 2023-07-24 : 5장, 6장 6주차 2023-07-31 : 7장, 8장 7주차 2023-08-07 : 9장 8주차 2023-08-14 : 10장, 11장 2024. 1. 23.