코딩 테스트가 처음이라..
2주만에 통과하는 알고리즘 코딩테스트 (2024년)
삭제된 글입니다
- python
- 코딩-테스트
- 알고리즘
173만명의 커뮤니티!! 함께 토론해봐요.
2주만에 통과하는 알고리즘 코딩테스트 (2024년)
삭제된 글입니다
2주만에 통과하는 알고리즘 코딩테스트 (2024년)
이번 주 일요일에 코테를 봅니다ㅜㅜ 특정 알고리즘이 아닌 구현 문제는 어떤 식으로 공부하는 게 좋을까요? 시뮬레이션 문제라든가... 선생님 강의를 보면 의식의 흐름대로 따라갈 때에는 일리가 있고, 정답으로 가는 길이긴 한데, 막상 문제에 진입하게 되면 어떻게 그 규칙을 발견해야할지 모르겠습니다.. 특히 DP의 점화식을 세우는 것. 어떻게 연습해야할까요 ㅜㅜ
2주만에 통과하는 알고리즘 코딩테스트 (2024년)
176~177 사이의 2의 제곱수로 나누어지는 약수를 모두 찾는 문제입니다. 176은 16으로 나누어 떨어지고, 177은 1로 나누어 떨어지니 16+1이 답이라고 하셨는데... 저는 이 논리 전개 자체가 이해가 되지 않습니다. 어떻게 16 + 1이 나오는지 알려주시면 감사하겠습니다ㅜ
[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편
안녕하세요! 자바 DFS 강의 리뷰에서 9월 내 완전 탐색 강의를 오픈할 계획(?)이라는 답변 주신 것을 봤던 것 같습니다. 혹시 자바 강의 뿐만 아니라 파이썬 강의도 9월 내에 오픈하실 계획이신가요??
그림으로 쉽게 배우는 자료구조와 알고리즘 (심화편)
이럴때는 감자선생님께서 말씀하셨던것처럼 일단 수업듣고 아 그렇구나 하고 지나 치는게 맞을까요 ?
2주만에 통과하는 알고리즘 코딩테스트 (2024년)
안녕하세요! 이제 막 코테를 준비하는 학생입니다! 완전탐색 부분을 영상으로 보고있는데, 약15~20분 정도 고민해봐도 접근법이 떠오르지 않으면 솔루션을 확인해봐도 괜찮을까요? 접근법이 도저히 떠오르지 않아 속상합니다 ㅠㅠ
그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
안녕하세요 강사님 강의 듣고 있는 학생입니다. 자료구조 기본편인데도 구현 부분에서 계속 계속 봐도 이해가 안되는 부분이 많네요. 10분 짜리를 한 시간 넘게 돌려볼 때도 있고 그렇게 해도 잘 이해가 안되는 부분은 일단 넘어가야 할까요?
나도코딩의 자바 기본편 - 풀코스 (20시간)
삭제된 글입니다
[자바/Java] 문과생도 이해하는 DFS 알고리즘! - 입문편
삭제된 글입니다
코딩테스트 [ ALL IN ONE ]
사용하고 계시는 에디터가 뭘까요?
실전! Querydsl
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 활용할 때는 유의해야할 것 같습니다.
코딩테스트 [ ALL IN ONE ]
대기업을 목표로 코딩 테스트 준비 하고 있는 개발자의 비법 노트까지 열심히 하고 프로그래머스를 통해 1단계는 다 풀고 2단계를 풀려고 하는 취준생 입니다. 비법 노트 공부 방식 문제를 2단계를 해결하니 난이도가 많이 올라가서 손도 못 대고 시간을 보내는 경우가 많습니다.. 나름 기초를 잘 닦아서 1단계를 풀었는데 2단계 부터 공부하는 방법을 바꿔야 할까요.. 너무 막막해서 이렇게 두서 없이 질문 드립니다..좋은 방법 있으면 공유 부탁드립니다.ㅎㅎ
자바 ORM 표준 JPA 프로그래밍 - 기본편
https://xively.tistory.com/43
그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
안녕하세요. 선생님 기본편을 완강했고, 계속 복습할 예정입니다! 심화편도 이제 수강할 예정입니다. 책도 한 권 구매해서 같이 공부하고 싶은데, 추천해주실 수 있을까요? 감사합니다.
코딩테스트 [ ALL IN ONE ]
안녕하세요! 이번에 수강신청한 3년차 개발자입니다. 이번에 코딩테스트를 준비를 하려고 수강을 하게되었는데, 수강 내용에 대해서 개인블로그에 정리해서 게시해도 되는지 여쭤보고자 글 남깁니다. 출처는 꼭 남길 예정입니다. :)
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
안녕하세요. C++ 언어가 아닌 Swift 언어로 문제를 풀고 있는 코린이 수강생입니다. 백준 10988번 - 팰린드롬인지 확인하기 를 Swift로 풀 경우 채점 100% 구간에서 계속 "틀렸습니다" 문구가 나오고 있습니다. (반례 없이 잘 작동하고 있습니다... 아마도….) 혹시 저와 같은 문제를 겪었던 학우분들 있을까요?? var str = readLine()!.map{String($0)} let tempStr = str str.reverse() let reverseStr = str if str.count == 1{ print(0) } else{ if tempStr == reverseStr{ print(1) } else{ print(0) } } 혹시 몰라 배열의 원소 하나하나 비교해 보았는데도 계속 틀렸다고 나오고 있네요ㅠ var str = readLine()!.map{String($0)} let tempStr = str str.reverse() let reverseStr = str var tf = false for i in 0..<(str.count/2)+1{ guard str.count != 1 else {print(0); tf = false; break} if tempStr[i] == reverseStr[i]{ tf = true } else{ tf = false print(0) break } } if tf == true{print(1)}
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
현재 국비 학원을 수료하며 프로젝트를 마친 뒤에 김영한님 강의를 듣고 있으며 spring에 대해 이제서야 이해하려 하는 취준생입니다. 문득 제가 어떤 개발을 하고 싶은지 방향성에 대해 생각해보게 되었습니다. ->어떤 개발을 하고 싶은지 방향성에 대해 되짚어 보고 있었다 ->SQL문을 짜면서 효율적인 방법은 무엇이 있을까 고민하는 과정이 스스로 가치 있는 고민을 하고 있다는 생각이 들었다. ->데이터 처리 속도 개선에 관하여 고민하는 개발자가 되고 싶다. ->대용량 트래픽을 다루는 서비스 회사에서 성장하고 싶다. 질문 ==> 위의 4문장을 설득력 있게 말하기 위해서 취준에 뛰어드는 예비 백엔드 개발자 수준에서 할 수 있는 "공부 방향"은 무엇이 있을지 조언 해주실 수 있을까요? (특정 개념이나 강의를 추천해주셔도 감사할 것 같습니다. )
https://adevspoon.page.link/XJYS 개발 공부, CS 공부 등등 개발자가 되기까지 해야할 공부가 너무 많지 않나요? 개발자 취업, 면접, 이직 어떻게 준비해야할지, 비전공 개발자인데 어디서부터 시작해야할지 모르겠다구요? 개발 한 스푼이 도와드립니다! https://adevspoon.page.link/XJYS 하루에 하나씩 IT 기술면접 질문 제공받고 공부해가며 Computer Science 정복해봐요! 자료구조, 알고리즘, 네트워크, 운영체제, 데이터베이스까지 방대한 CS 지식을 가볍게 차근차근! 질문에 답변하고, 도움이 된 답변을 모아보고, 받은 질문을 모아보며 복습까지. 오늘부터 하루에 딱 하나씩만! 지금 바로 시작해보세요
실전! Querydsl
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 으로 빼버리는 거 만들어주지 않을까 하는 기대가 있긴 합니다.
저는 일단 정보통신공학 2학년인데 소프트 커리를 타려고 생각중이에요 2학기에 C++ 자료구조론을 배우는데 여론으로는 C++은 게임 개발이나 인공지능? 쪽에서 많이 쓰인다고 하고 제가 생각하는 프론트/백엔드의 웹 개발자는 java나 python이 주 프로그래밍 언어이고 IT기업 쪽에서도 java를 활용한 툴(Spring 등)을 선호하고 있다고 들어서 C++은 학점 챙기는 용으로 공부하고 진로를 위해서는 java를 중점적으로 공부하려고 하는데 1. 지금 java와 C++ 자료구조를 병행해서 공부를 하는 것이 나은지(공부 비중은 C++을 더 높게) 2. 일단은 C++ 자료구조를 중점적으로 공부할지 고민되어 질문글 올립니다 ㅠㅠ - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.