본문 바로가기

전체 글1065

[Study 019] 토비의 스프링 3.1 스터디 주제   토비의 스프링 3.1 Vol.1  참가자https://github.com/nahwasa(모집 완료 후 작성 예정) 일정 (진행중)(모집 완료 후 작성 예정) 내용 정리- 2024. 6. 24.
[Study 017] 디자인 패턴의 아름다움 스터디 주제   디자인 패턴의 아름다움(완정 저)매주 정해진 챕터 각자 읽고와서, 게더타운에서 온라인으로 서로 토론 및 이해안되는 부분 질문. 혹은 뭐 추가로 설명할꺼 있으면 자료 준비해와도 됨 (추가 설명 예시 : https://nahwasa.com/entry/TDD-Mock-SOLID-얘기-도시-가스-요금-계산)  참가자https://github.com/nahwasahttps://github.com/mluluckyhttps://github.com/gwonsiyunhttps://github.com/daraekitahttps://github.com/covertOta 일정 (완료)1주차 2024-02-17 : 1.1 코드 설계를 배우는 이유 / 1.2 코드 품질 평가 방법 (전체적인 내용을 다루는 1장이다.. 2024. 6. 21.
[자바] 백준 2734 - 드럼통 쌓기 (java) 목차문제 : boj2734  필요 알고리즘기하학기하학 문제이다... 수학 어렵다.※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다.  풀이  입력으로 쓰레기통의 가장 아래에 있는 N개의 드럼통이 주어진다. 그리고 항상 그 윗줄에는 N-1개의 드럼통이 있다고 했고, 그런식으로 위로 쌓다가 가장 위 1개의 드럼통의 (x,y)를 구하는 문제이다.   그래서 풀이자체는 간단한데, N개의 입력이 주어지면 최종적으로 남은게 1개일 때 까지 다음을.. 2024. 5. 27.
[자바] 백준 18436 - 수열과 쿼리 37 (java) 목차문제 : boj18436  필요 알고리즘세그먼트 트리, 펜윅 트리, 제곱근 분할법위 알고리즘 혹은 자료구조 중 아무꺼나 쓰면 된다.※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다.  풀이  세그먼트 트리, 펜윅 트리, 제곱근 분할법 등 풀 수 있는 방법은 많다. 아무튼 단일 업데이트, 범위 쿼리를 유효한 시간 내에 처리 가능한 코드를 짜면 된다. 이하 코드는 펜윅 트리를 사용해 풀었다. 펜윅트리에 대한 설명은 '이 글'에서 볼 수.. 2024. 5. 24.
[자바] 백준 2026 - 소풍 (java) 목차문제 : boj2026  필요 알고리즘브루트포스, 백트래킹백트래킹을 써서 모든 경우를 살펴보면 된다.※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다.  풀이  그냥 백트래킹 섞어서 브루트포스로 해보고 안되면 다른 방법을 찾으려고 했는데 통과됬다. 초기 명분(?)은 어차피 최악의 경우 K가 62일 경우, 최소로 필요한 간선은 62*61 = 3782개인데 F가 최대 5600이라서 최악의 경우라도 5600개 중 3782개가 쓰여야 되므.. 2024. 5. 23.
[자바] 백준 21610 - 마법사 상어와 비바라기 (java) 목차문제 : boj21610더보기  필요 알고리즘시뮬레이션제시된 대로 구현하면 된다.※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다.  풀이  그냥 문제에 제시된대로 구현하면 되서 풀이는 필요없을 것 같다. 이하 코드는 그냥 풀긴 좀 심심할 것 같아서 2차원 배열을 쓰지 않고 풀어봤다. 그러니 2차원 배열 안쓰고 푸는걸 참고하려면 코드를 확인해보자. 각 단계별로 처리하는 코드는 주석을 달아두었다. 2차원 배열로 문제에 제시된대로 구현.. 2024. 5. 23.
[자바] 백준 27501 - RGB트리 (java) 목차문제 : boj27501  필요 알고리즘트리 DP (트리 + 동적계획법)트리에서 DP를 사용해 푸는 문제이다.※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다.  풀이  '백준 1149 RGB거리' 문제의 트리버전이라고 보면 된다. 그러니 저걸 안풀었다면 저것부터 풀어보자. 1149를 못푸는데 이 문제를 풀 수 있을 가능성은 없다.   우선 간소화해서 생각해보기 위해, 이 문제를 1149번 문제처럼 트리긴한데 그냥 1차원이었다고 생.. 2024. 5. 23.
[자바] 백준 2981 - 검문 (java) 목차문제 : boj2981  필요 알고리즘유클리드 호제법, 정수론gcd를 구해서 풀 수 있는 문제이다.※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다.  풀이  N개의 숫자를 M으로 나누었을 때, 나머지가 모두 같게 되는 2이상의 M을 모두 찾는 문제이다. 이 경우, 우선 가장 큰 M만 찾으면 된다. 왜냐면 나머지 M은 가장 큰 M의 약수들을 찾아주면 되기 때문이다. 그럼 문제는 N개의 숫자를 M으로 나누었을 때 나머지가 모두 같게 .. 2024. 5. 22.
[세미나] git 기본 이해 git의 기본적인 이해를 위한 세미나 입니다. 목적은 이하와 같았습니다. 1. 기본적인 git 명령어를 이해해서 IDE가 달라지더라도 동일하게 사용할 수 있도록 하는 것2. 현재 git을 사용해 개발중인 상황에서 충돌 등이 발생했을 때, 현재 상황을 머리속으로 그려볼 수 있도록 이해하는 것    라이브코딩으로 진행된 세미나이다보니 ppt로는 설명에 한계가 있습니다. 라이브코딩으로 진행했던 내용까지 포함된 글은 '링크'에 있습니다.  ppt의 우측 상단 '새 탭에서 보기' 를 누르시면 크게보거나 pdf를 다운받아 보실 수 있습니다. 2024. 5. 22.
Git 기본 이해 - 기본 명령어의 이해, 충돌 해결, github 목차   최근 git 기초에 대한 세미나 한 자료를 기반으로 글을 작성했습니다. 이 글의 목적은 아래와 같습니다.1. 기본적인 git 명령어를 이해해서 IDE가 달라지더라도 동일하게 사용할 수 있도록 하는 것2. 현재 git을 사용해 개발중인 상황에서 충돌 등이 발생했을 때, 현재 상황을 머리속으로 그려볼 수 있도록 이해하는 것   각 ppt 하단 부가 설명은 리눅스에서 CLI 환경에서 git을 사용했습니다. 이하 리눅스 명령어는 아셔야 이해할 수 있을 것 같습니다.ls : 현재 폴더내에 파일 뭐 있는지 확인vi : 그냥 메모장 같은거 실행해서 txt 파일 편집했다고 보시면 됩니다.cat : txt 파일 내용 확인했다고 보시면 됩니다.   알아두면 좋을만한 기본 명령어 외 세부적인 옵션들은 작성하지 않았.. 2024. 5. 22.