본문 바로가기

분류 전체보기1068

[자바] 백준 1790 - 수 이어 쓰기 2 (java) 목차 문제 : boj1790 필요 알고리즘 구현, 수학 수학적 사고를 통해 구현할 수 있는 문제이다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 N이 1억까지이므로, 언어에 따라 실제로 수를 이어봐서 풀 수도 있어 보인다. 실제로 파이썬은 이렇게 풀 수 있음을 확인했다. 자바는 안될 것 같다. 우선 N이 100,000,000인 경우는 제외하고 최대 8자리까지 가능하다고 생각해보자. 그렇다면 자리수가 i개인 숫자는 ix9x.. 2023. 5. 9.
[자바] 백준 22839 - Square Coins (java) 목차 문제 : boj22839 필요 알고리즘 동적 계획법 (DP), 배낭 문제 (냅색) 유명한 DP 유형인 냅색으로 해결할 수 있다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 우선 살펴봐야 할 것이, 입력값의 최대치는 300이고, coin의 최대치는 17x17 이라는 점이다. 그리고 테스트케이스가 여러개 있긴하지만 어차피 300까지 모두 구해두면 각 테스트 케이스는 O(1)로 구할 수 있다. 따라서 1원부터 300원까지.. 2023. 5. 4.
[Study 008] 클린 아키텍처 스터디 주제 '만들면서 배우는 헥사고날 아키텍처 설계와 구현' 책과 '만들면서 배우는 클린 아키텍처' 책 (DDD책 등 필요하다면 더 추가 예정)을 보면서 토론 및 질문. 최종적으로 스프링 프로젝트에 사용하기 위해 레이어드 아키텍처와 클린 아키텍처(헥사고날 아키텍처), DDD에 대해 이해하는게 목적. 참가자 - https://github.com/nahwasa - https://github.com/sorrymommy - https://github.com/Octoping925 - https://github.com/realain 일정 (완료) 매주 토요일 오후 2시 게더타운에서 진행 - 1주차 (2023-02-11) : 킥오프 + '만들면서 배우는 헥사고날 아키텍처 설계와 구현' 1장 - 2주차 (2023-0.. 2023. 4. 29.
[객사오 정리] 1장. 협력하는 객체들의 공동체 스터디 메인 페이지 목차 - ☆ 표시가 붙은 부분은 제 개인적인 생각이나 제가 이해한 방식을 적어놓은 것 혹은 다른 책이나 자료의 내용으로, 객사오 책에 나오지 않는 내용입니다. 따라서 책에서 말하고자 하는 바와 다를 수 있습니다. - 모든 이미지의 출처는 객체지향의 사실과 오해(조용호 저) 책 입니다. 서문 ☆ 4page에 나오는 상속과 일반화 : 상속엔 서브클래싱과 서브타이핑이 있다. 서브클래싱은 단순히 코드를 재사용하기 위해 상속을 사용한 경우인데 이 경우엔 일반화와 관련이 없다. 서브타이핑은 다형적인 협력 위해 상속을 사용하는 경우이다. 이 경우 부모 클래스는 자식 클래스의 일반화이다(반대는 특수화). 1. 협력하는 객체들의 공동체 객체지향의 목표는 실세계를 모방하는 것이 아니다. 고객과 사용자를.. 2023. 4. 26.
[자바] 백준 27961 - 고양이는 많을수록 좋다 (java) 목차 문제 : boj27961 필요 알고리즘 그리디 0마리 이상 k마리 이하에 안낚이도록 그리디 규칙을 정할 수 있어야 한다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 주의해야하는 점은 복제 마법 부분이다. 0마리 이상 k마리 이하라고 했는데, k마리 복제하지 않는게 이득인 경우가 과연 있을까? 없다(갯수 안넘어가게 조절할 때 빼고). 즉 이 문제는 고양이를 1마리 늘리거나, 2배 늘릴 수 있을 때 최소의 행동을 구하는.. 2023. 4. 19.
[자바] 백준 27960 - 사격 내기 (java) 목차 문제 : boj27960 필요 알고리즘 수학, 2진수 2진수를 떠올렸다면 풀만한 문제이다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 과녁의 점수가 2진수의 각 자리수를 뜻하는걸 깨달았다면, 정수 표현방식과 동일하다는걸 떠올릴 수 있다. 즉, Sa, Sb 각각에 대해 어떤 과녁을 맞췄는지 항상 분리해낼 수 있다. 예를들어 7이라는 점수를 표현하려면 뭔가 과녁을 어떻게 조합하면 다양한 경우의 수가 있다고 생각할 수 있.. 2023. 4. 19.
[자바] 백준 27959 - 초코바 (java) 목차 문제 : boj27959 필요 알고리즘 사칙연산 간단한 곱셈, 비교 문제이다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 100N이 M 미만이라면 No, 이상이라면 Yes를 출력해주면 된다. 코드 : github import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Mai.. 2023. 4. 19.
[자바] 백준 16099 - Larger Sport Facility (java) 목차 문제 : boj16099 필요 알고리즘 사칙연산 간단한 사칙연산 문제이다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 l_t, w_t, l_e, w_e 를 입력받은 후 l_t * w_t와 l_e * w_e를 비교한다. 같다면 Tie, 전자가 크다면 TelecomParisTech, 후자가 크다면 Eurecom를 출력해주면 된다. 다만 곱셈의 결과가 int로는 표현 불가능한 범위이므로 long을 사용해야 한다는 점은 주.. 2023. 4. 19.
읽은 책 소감 - 이펙티브 자바 3/E 아직 모르는게 많은 입장에서, 확실히 이건 해라! 이건 하지마라! 이렇게 단호하게 말해주는 책이 좋은 것 같다. "이러이러한 방법이 좋긴한데, 서로 장단점이 있어요.. 이거 써도 되고 저거 써도 되긴해요" 이런식으로 써있는 책은 사실 어느정도 지식 있는 사람이라면 판단의 폭을 넓혀주겠지만 초보자들이 읽기엔 별로인 것 같다. 그런 면에서 이 책은 각 아이템의 제목부터가 단언적이다. "로 타입은 사용하지 말라", "다 쓴 객체 참조를 해제하라", "int 상수 대신 열거 타입을 사용하라", ... 그래서 초보자용으로 참 좋은데, 문제는 책이 좀 어렵긴하다. 적어도 자바의 기본적인 문법은 알고 봐야 읽힌다. 다소 깊은 지식까지 써 있는 편이긴한데, 사실 제목이랑 기본 개념만 봐도 충분히 도움된다. 개인적으로 .. 2023. 4. 17.
[Study 007] 이펙티브 자바 스터디 주제 이펙티브 자바. 각 주차별로 읽어와서 질문, 토론, 추가로 하고 싶은 얘기 진행 참가자 8명 일정 (완료) 1주차 (2023-02-13) : 1장, 2장 2주차 (2023-02-20) : 3장 3주차 (2023-02-27) : 4장 4주차 (2023-03-13) : 5장 5주차 (2023-03-27) : 6장 6주차 (2023-04-03) : 7장, 8장 7주차 (2023-04-10) : 9장, 10장 8주차 (2023-04-17) : 11장, 12장 스터디 내용 정리 [이펙티브 자바 정리] 2장 - 객체 생성과 파괴 (추가로 정리글은 작성하지 않을 예정입니다. 중간중간 모르는 내용이고 유용한게 보이면 개별적으로 작성할 것 같습니다.) 2023. 4. 17.