public class BOJ_12865 { static int N; static int K; static int[][] merchandise; // 0 : 무게, 1 : 가치 static int[][] dp; public static void main(String[] args) { Scanner sc = new Scanner(System.in); N = sc.nextInt(); K = sc.nextInt(); merchandise = new int[N][2]; dp = new int[10000000][N]; for (int i = 0; i < 10000000; i++) { for (int j = 0; j < N; j++) { dp[i][j] = -1; } } for (int i = 0; i < N; i++) { merchandise[i][0] = sc.nextInt(); merchandise[i][1] = sc.nextInt(); } int max = recursion(0, 0); System.out.println(max); } private static int recursion(int index, int weight) { if (weight > K) { return Integer.MIN_VALUE; } if (index == N) { return 0; } if (dp[weight][index] != -1) { return dp[weight][index]; } dp[weight][index] = Math.max(recursion(index + 1, weight), recursion(index + 1, weight + merchandise[index][0]) + merchandise[index][1]); return dp[weight][index]; } 안녕하세요 덕분에 강의 잘 듣고 있는 수강생입니다. 냅색 문제를 풀고 있는데, 최대 가능한 무게의 경우 100 (배낭 물품의 최대 개수) * 100,000(각 물건의 최대 무게) 로 생각보다 생성해줘야하는 배열의 크기가 크더라구요. 그래서 혹시 dp를 1차원 배열로 생성하면 어떻게 되는 지 궁금하여 1차원 배열로 해본 결과, 무게를 고려하지 않고 dp의 무게 갱신을 하게 되어 답이랑은 다르게 나오네요. 혹시 1차원 배열을 시도하려고 할 때 제가 놓치고 있는 부분이 있을까요?감사합니다.
안녕하세요. 등산코스 추천 서비스 여기있산 팀입니다. 몇 주 동안 사이드 프로젝트로 등산코스 추천 서비스 를 만들었습니다. MVP 단계 라 많이 부족하지만 테스트 해보시고 소중한 의견 주시면 감사하겠습니다! 등산 정보 찾으러 다니다 지쳐버린 😩 등산러 여러분 여러분의 피로를 날려드리기 위해 '여기있산' ⛰️이 왔습니다~! 맞춤형 등산 코스 추천 서비스인 '여기있산'⛰️ 을 이용해보시고 설문조사에 참여해주세요! 추첨을 통해 응답해주신 10분께 "시원한 음료쿠폰 🍹"을 전달 드립니다! :) 등산 코스 추천 받고 서비스 ⛰️ 이용하기 👇👇👇 https://bit.ly/mountainhere_inflearn 5분 투자해서 등산 후 마실 "시원한 음료쿠폰 🍹" 받으러가기 👇👇👇 https://forms.gle/21FhfZYspDkmYMoy8
QueryDSL 내부 메소드 중 fetchResult() 나 fetchCount()는 만료된 메소드에 대해서는 QueryDSL에서 Blaze-persistence Integration 라이브러리 사용을 권장 하는데요, Blaze-persistence도 QueryDSL 처럼 쿼리 빌더 API 로서 개발자에게 유지보수하기 좋은 객체를 제공해주고 있습니다. 게다가 최신 업데이트 날짜가 글 작성일 기준(2023.06.21) 일주일 이전이라 여전히 유지보수되고 있어서 최신 스프링버전과 호환성도 어느정도 보장되었다고 볼 수 있습니다. 개인적으로 SpringBoot 3.1.0 기준으로 다음과 같이 세팅하니 정상적으로 동작하는 걸 확인했는데요, 혹시 저처럼 deprecated 메소드를 쓰는 것이 신경쓰이시는 분들을 위해 공유드립니다. build.gradle dependencies { //Blaze-Persistence implementation 'com.blazebit:blaze-persistence-integration-querydsl-expressions-jakarta:1.6.9' implementation 'com.blazebit:blaze-persistence-integration-hibernate-6.2:1.6.9' implementation 'com.blazebit:blaze-persistence-core-impl-jakarta:1.6.9' } BlazePersistenceConfiguration.java @Configuration public class BlazePersistenceConfiguration { @PersistenceUnit private EntityManagerFactory entityManagerFactory; @Bean @Scope(ConfigurableBeanFactory.SCOPE_SINGLETON) @Lazy(false) public CriteriaBuilderFactory createCriteriaBuilderFactory() { CriteriaBuilderConfiguration config = Criteria.getDefault(); // do some configuration return config.createCriteriaBuilderFactory(entityManagerFactory); } } QuerydslBasicTest.java ..... JPAQueryFactory queryFactory; @Autowired CriteriaBuilderFactory cbf; BlazeJPAQueryFactory blazeQueryFactory; @BeforeEach public void testEntity(){ queryFactory = new JPAQueryFactory(em); // 이건 동시성 문제를 고민하지 않아도 됨, 해결됨 blazeQueryFactory = new BlazeJPAQueryFactory(em, cbf); ..... 적용 결과 기존 QueryDSL 세팅한 것에 추가로 세팅하시면, 만료된 메소드에 대해 Blaze-persistence 객체로 대체되는데요, 기존 querydsl 클래스를 상속 받는 형태여서 QueryDSL이 제공하는 메소드를 그대로 쓸 수도 있습니다. fetchResults는 fetchPage로 바꿔서 사용할 것을 권장하고 있다는 점 참고하시면 될 것 같습니다. 추가로 내부로직이라든지 설명이 더 필요하시다면 Blaze-persistence 릴리즈 노트 와 Blaze Persistence Document 를 참고하시면 좋을 것 같습니다. 이 글에 대해 지적 및 피드백 해주시면 정말 감사하겠습니다. 감사합니다. 여담 및 고민 : 개인적으로 이 라이브러리의 내부로직을 뜯어보면서 분석하고 검증할 수 있는 역량은 부족한지라 분석 및 검증하는 방법에 대해서 팁이라든지, 아니면 blaze-persistence 사용할 시 주의해야할 점이라든지 조언해주실 수 있으시면 정말 감사드립니다. 강의를 듣던 중에 서브쿼리가 발생하는 부분에서는 정상동작하지 않는 것을 발견했습니다. @Test public void findUserDto(){ QMember memberSub = new QMember("memberSub"); List<UserDto> memberDtoList = queryFactory //이건 blazeQueryFactory가 정상 동작하지 않음 .select(Projections.fields(UserDto.class, //생성자 필드 순서에 맞게 변수를 만들어야 한다. member.username.as("name"), // member.age 대신 서브쿼리로 다 최대 나이로 찍고 싶어 ExpressionUtils.as( JPAExpressions .select(memberSub.age.max()) .from(memberSub), "age") )) .from(member) .fetch(); for (UserDto userDto : memberDtoList) { System.out.println("userDto = " + userDto); } } QueryDSL 쿼리 /* select member1.username as name, (select max(memberSub.age) from Member memberSub) as age from Member member1 */ select m1_0.username, (select max(m2_0.age) from member m2_0) from member m1_0 blaze-persistence 쿼리 /* SELECT member1.username AS name, member1.age AS generatedSubquery_1 FROM Member member1 */ select m1_0.username, m1_0.age from member m1_0 blaze-persistence generatedSubquery라 하여, 서브쿼리를 하나의 alias로 처리를 해버렸는데, 후행으로 이 generatedSubquery 에 대한 정의가 따라오질 않습니다... 왜 이런 차이가 나오는지는 모르겠지만 blaze-persistence 활용할 때는 유의해야할 것 같습니다.
안녕하세요 :) 저희 팀은 사이드 프로젝트로 진행한 서비스의 개선과 추가 기능개발을 위한 설문조사를 진행하고 있습니다! 인프런을 통해서 다양한 사용자분들의 설문 인사이트를 얻고자 게시하게 되었습니다 :) 🖥 서비스 링크 https://todaysfail.com/ 실패가 두려워 아무것도 하지 않은 적이 있지 않나요? 아니면 작은 실패에도 크게 좌절하고 힘들어하고 계시진 않나요? 🥲 <오늘의 실패>로 크고 작은 실패를 기록하면서 실패를 조금 더 가볍게 대해보세요! ‘나’를 성장시킨 오늘의 실패는 무엇이었나요? 매일 기록하다보면 어느새 실패에 의연해진 모습을 발견할 수 있을 거예요! 👉 유저 피드백 🎁 커피 기프티콘(10분) 추첨 서비스를 이용해보시고 가감 없는 피드백 주시면 감사하겠습니다.😊 🔗 설문지 링크 https://bit.ly/3L51AOJ
‘SWYG 부스트’ 란? 복잡한 배포 과정 때문에 배포를 미뤄온 콘텐츠 혹은 이용자 데이터를 바탕으로 지속적으로 디벨롭하고자 하는 콘텐츠를 복잡한 절차와 비용 없이 쉽고 빠르게 배포할 수 있는 프로그램입니다. * ‘부스트’는 ‘스위콘’의 새로운 프로그램명입니다. ✅ 출시 가능한 콘텐츠 - MBTI 테스트, 심리테스트, 온라인 방탈출, 인터랙티브 웹, 온라인 전시, 미니게임, 한 페이지 내외로 이루어진 유틸성 사이트 등 코딩을 기반으로 만들어진 웹 콘텐츠 이런 콘텐츠도 가능한지 고민이 되신다구여❓ - 한 페이지도 상관없을까? - 예전에 제작한 것도 괜찮을까? - 기능이 완벽하지 않았는데 괜찮을까? - 이 콘텐츠로 수익을 창출해보고 싶은데 가능할까? - 콘텐츠를 지속하지 않을 생각이었는데 괜찮을까? 위에 해당되는 콘텐츠들 모두 오케이 👌 ※ 선정적이거나 폭력성, 사행성 요소가 많이 포함된 콘텐츠는 출시가 불가능할 수 있습니다. 🤷왜 스위그에서 출시를 해야 하나요? 🔥콘텐츠 출시 Benefit🔥 - 웹 호스팅 및 도메인 제공 - 복잡한 심사 절차 없이 광고 부착 가능 - 트래픽이 많이 발생할 수 있도록 전담 마케팅 제공 - 사용자 유입 데이터 제공 - 스위그의 자동 SEO를 통한 검색엔진 최상단 노출 가능 - 콘텐츠의 고도화를 위한 인프라 지원 👉 혜택 자세히 알아보기[ https://swyg.link/h5j_0 📅 일정 - 지원 마감: ~ 3/20(월) - 결과 안내 : 3/22(수) 15:00 📌 지원 방법 구글폼 작성 https://swyg.link/gUjF9 ✨[SWYG 요약 소개]✨ SWYG에서 심리테스트, 미니게임, 인터랙티브 콘텐츠와 같은 특색 있는 메타 콘텐츠를 즐기고, 직접 만든 콘텐츠를 호스팅하여 많은 사용자들을 유입시킬 수 있습니다. 🔗SWYG 홈페이지 https://www.swygbro.com 🔗SWYG 인스타그램 https://www.instagram.com/swyg_official 🙋문의 Kakao: https://open.kakao.com/me/swyg_content Email: shlee@swygbro.com
현재 국비 학원을 수료하며 프로젝트를 마친 뒤에 김영한님 강의를 듣고 있으며 spring에 대해 이제서야 이해하려 하는 취준생입니다. 문득 제가 어떤 개발을 하고 싶은지 방향성에 대해 생각해보게 되었습니다. ->어떤 개발을 하고 싶은지 방향성에 대해 되짚어 보고 있었다 ->SQL문을 짜면서 효율적인 방법은 무엇이 있을까 고민하는 과정이 스스로 가치 있는 고민을 하고 있다는 생각이 들었다. ->데이터 처리 속도 개선에 관하여 고민하는 개발자가 되고 싶다. ->대용량 트래픽을 다루는 서비스 회사에서 성장하고 싶다. 질문 ==> 위의 4문장을 설득력 있게 말하기 위해서 취준에 뛰어드는 예비 백엔드 개발자 수준에서 할 수 있는 "공부 방향"은 무엇이 있을지 조언 해주실 수 있을까요? (특정 개념이나 강의를 추천해주셔도 감사할 것 같습니다. )
누구 하나 빠짐없는 모임 시간 맞추기, 타임투밋! https://www.time2meet.xyz/ 안녕하세요! 진현입니다 🙋🏻♀️. 혹시 팀플이나 모임시간 매칭할 때 단톡방에서 계속 일정 물어보고 투표만 백만개 만들고 계시진 않았나요? 답답해서 열심히 일정 만들었더니 갑자기 팀장을 시키진 않았나요? 저도 이러한 문제를 겪고 프론트개발자 한 분과 함께 사이드프로젝트로 타임투밋을 개발했습니다. 회원가입 없이 간단하게 모임을 만들고 링크에서 가능한 시간을 입력하면 공동의 시간을 볼 수 있어요 팀프로젝트로 일정 잡으실 일 있으면 많이 사용해보시고 많은 피드백 부탁드립니다!
plugins { id 'org.springframework.boot' version '2.7.4' id 'io.spring.dependency-management' version '1.0.14.RELEASE' id 'java' } group = 'study' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' // queryDSL 설정 implementation "com.querydsl:querydsl-jpa" implementation "com.querydsl:querydsl-core" implementation "com.querydsl:querydsl-collections" annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jpa" // querydsl JPAAnnotationProcessor 사용 지정 annotationProcessor "jakarta.annotation:jakarta.annotation-api" // java.lang.NoClassDefFoundError (javax.annotation.Generated) 대응 코드 annotationProcessor "jakarta.persistence:jakarta.persistence-api" // java.lang.NoClassDefFoundError (javax.annotation.Entity) 대응 코드 } tasks.named('test') { useJUnitPlatform() } // Querydsl 설정부 def generated = 'src/main/generated' // querydsl QClass 파일 생성 위치를 지정 tasks.withType(JavaCompile) { options.getGeneratedSourceOutputDirectory().set(file(generated)) } // java source set 에 querydsl QClass 위치 추가 sourceSets { main.java.srcDirs += [ generated ] } // gradle clean 시에 QClass 디렉토리 삭제 clean { delete file(generated) } 해당 소스는 타사 강의 보다가 본 설정에서 가져왔습니다. 기존 영한님 강의와 다른 점이 3가지 있으니 주의하시기 바랍니다. Querydsl Q파일 생성 위치가 다릅니다. 기존 영한님 강의대로 $build 로 시작하는 설정을 사용하면 테스트 실행 시 Q파일의 위치를 찾지 못해서 테스트가 실패합니다. Gradle -> Tasks -> build -> clean Gradle -> Tasks -> build -> build 혹은 classes 기존 영한님 교안에는 빌드 시 Gradle -> Tasks -> other -> compileQuerydsl 로 Q파일을 생성하지만, 이 방법의 경우 other에 해당 메뉴가 없습니다. 그래서 빌드 시에는 그냥 build 메뉴의 build 혹은 classes 로 빌드하시면 Q파일이 생깁니다. 영한님 강의에서는 gradle build 폴더가 대부분 git 버전관리에 포함되지 않으므로 따로 설정할 필요가 없지만, 이 경우 Q파일이 소스폴더에 들어가므로 .gitignore 에 아래와 같이 별도로 경로를 설정해 주어야 합니다. ### Querydsl /src/main/generated 혹시 저같이 청개구리마냥 강의에 나온 버전 사용 안 하고 최신 버전 사용하시는 분들께 도움이 되었으면 좋겠습니다. 저도 타사 강의에서 가져온 것이고 기초 테스트만 통과한 것이라서 혹시 강의에 맞지 않는 경우 영한님이나 다른 분들이 추가 정보를 주시면 좋을 것 같습니다. 여담인데 QueryDSL은 쿼리 짜긴 확실히 편한데 설정이 버전마다 중구난방이라 불편합니다. 똑똑한 개발자분들이 이런 설정도 그냥 @Configuration 으로 빼버리는 거 만들어주지 않을까 하는 기대가 있긴 합니다.
안녕하세요. 저희는 백엔드 3명, 프론트엔드 3명, 디자이너 1명으로 이루어진 팀 '화목'입니다. 이번에 4주동안 기획, 디자인, 개발하여 가족 공유 캘린더 서비스를 런칭하였습니다. 이용 가능한 서비스는 다음과 같습니다. 📌 가족 일정을 한 번에 ! '그룹 구성원 간에 캘린더 공유 기능' 📌 소중한 사람들과 함께한 추억을 보관하는 '공유 갤러리 기능' 📌 그리운 우리 엄마 목소리, 듣고싶을 때 '음성메세지 기능' 📌 중간에 끼인 둘째 서러움 누가 알아주나..! '커뮤니티 역할별 게시판' 개발자 선배님들이 보시기에 부족함이 많은 서비스라 생각합니다. 하여, 어떤 점이 부족하고 개선하면 좋은 지 소중한 피드백을 통해 저희가 성장할 수 있는 기회를 주셨으면 합니다. 설문조사에 참여해주신 분들께 감사의 마음으로 추첨을 통해 5분께 소정의 선물(음료 기프티콘)을 보내드리는 이벤트를 진행 중이니 많은 참여 부탁드립니다 :) 🌱 테스트 기간: 2022.09.12 - 2022.09.20 🌱 링크 : https://www.hwa-mok.com
[환영해요 디자이너님! 저희 팀은요] 안녕하세요. 식당 리뷰 어플을 준비하고 있는 위릿입니다. 저희 팀은 광고성 리뷰가 넘쳐 내가 원하는 식당을 찾기 어려운 상황을 해결하고 싶어 위릿을 준비하게 되었습니다. 저희 팀은 현재 기획자 1인, 앱 개발자 1인으로 구성되어있고 UI 디자이너 1분을 모집 중입니다. [프로젝트 현황] - 현재 기획안, 와이어프레임(초안)이 나온 상황이고 구체적인 개발 기간은 디자이너분이 합류하신 후에 결정하고 싶습니다.(Figma로 작업된 프레임이 아닌 종이에 그려지기만 한 상태이며 디자이너분과 협의해 바꿀 수 있습니다.) - 정상적인 서비스 구현, 배포, 운영을 아직은 생각하고 있지 않습니다. 프로토타입 제작 후 협의해서 같이 해나가고 싶습니다. [업무는 이렇게 해요] - 업무 소통은 slack, 진행사항은 notion으로 공유합니다.(이전에 편하게 쓰시던 툴이 있다면 말씀해주세요) - 주로 온라인을 통해 비대면으로 진행하며, 간혹 대면 모임을 가지기도 합니다. - 무리하지말고 지치지말기로 해요. [이런 분과 함께 하고 싶어요] - Figma 사용 가능하신 분(그 외 Photoshop, Illustrator 등은 자유입니다.) - 적극적으로 디자인 방향을 제시하고 싶으신 분 - 포트폴리오용 프로젝트인 만큼 성별, 나이, 학력, 경력 불문하고 누구나 지원하실 수 있습니다. 다만 가볍게 진행하는 프로젝트는 아닙니다. 책임감을 가지고 끝까지 함께 할 자신이 있는 분의 지원을 기다리겠습니다. [CONTACT] eddie1221@naver.com로 연락처와 자신을 잘 나타낼 수 있는 포트폴리오를 첨부하여 메일 보내주시면 됩니다. 회신은 2,3일 내로 드리고 저희 팀과 핏이 잘 맞으실 분에 한해서 개별 연락 요청드릴 예정입니다. 프로젝트 관련해서 문의사항은 위 메일 혹은 아래 오픈카톡으로 편하게 문의주세요 :) https://open.kakao.com/o/svR38Xve 감사합니다.
사이드프로젝트! 모집글!!!!!! [사이드 프로젝트 모집 내용] 팀 주제 : 챌린지 앱 팀 목표 : mvp방식으로 앱 출시가 목표 현재 일정(횟수) : 현재는 주 1회, 일요일 9시 or 10시(이후 변경가능성 유) 예상 커리큘럼 간략히 : 12월까지 진행 예정, mvp방식 (현재 기획단계 , 팀 전체 회의중) 모집인원 : 1명(UI/UX디자이너) 팀 소개와 개설 이유 : 제가 개발하고 싶어서 모집한 사이드 프로젝트가 커졌습니다. 저희 팀'고래'는 현재 기획 2명, 개발 2명의 팀으로 이뤄져 있습니다. 필요에 의해 UI/UX디자이너 1명 모집합니다. 필요하신 부분 의견 남겨주시면 바로바로 피드백 가능합니다. 지원 관련 주의사항 : 1. 포트폴리오 2. 자기소개 3. Figma, Notion 사용가능여부 적어서 1차로 제가 보고 2차로 팀원들이랑 상의합니다. 양식만 보내주시면 1-2일 내 연락이 바로 갑니다. 팀에 지원할 수 있는 방법을 남겨주세요. (이메일, 카카오 오픈채팅방, 구글폼 등.) 오픈채팅방(*https://open.kakao.com/o/s3pxkJpe)
저는 일단 정보통신공학 2학년인데 소프트 커리를 타려고 생각중이에요 2학기에 C++ 자료구조론을 배우는데 여론으로는 C++은 게임 개발이나 인공지능? 쪽에서 많이 쓰인다고 하고 제가 생각하는 프론트/백엔드의 웹 개발자는 java나 python이 주 프로그래밍 언어이고 IT기업 쪽에서도 java를 활용한 툴(Spring 등)을 선호하고 있다고 들어서 C++은 학점 챙기는 용으로 공부하고 진로를 위해서는 java를 중점적으로 공부하려고 하는데 1. 지금 java와 C++ 자료구조를 병행해서 공부를 하는 것이 나은지(공부 비중은 C++을 더 높게) 2. 일단은 C++ 자료구조를 중점적으로 공부할지 고민되어 질문글 올립니다 ㅠㅠ - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
블록체인 분야 기술을 배우고싶은 분들 or 블록체인 분야 취업을 원하시는 분들 주목! 서울시에서 뉴딜일자리사업 일환으로 IT 블록체인과정으로 3개월 인턴십 (급여 월 260) 보내주는 프로그램 진행중인데 신청해보세요! https://blog.naver.com/kjc_sh/222745988610 자세한 내용은참고해주세요 오픈카카오톡 문의 [ https://open.kakao.com/o/stkiOIhe ]
저희는 개발자를 위한 사이드프로젝트 서비스를 기획하고 있는 팀 리치노마더 입니다! 더 좋은 서비스를 만들기 위해 여러분들의 사이드프로젝트 경험을 알고 싶습니다. 2~3분내로 끝나는 간단한 설문조사입니다. 많은 참여 부탁드려요!!! 소중한 시간을 내어주셔서 진심으로 감사합니다. 🥰 👇👇👇 아래 링크를 확인해주세요👇👇👇 https://forms.gle/5EXRNGzdCojryamg6