안녕하세요. 선생님. 영상도 참고하면서 제 방식대로 조금 짜봤는데 잘 안되서 여쭤봅니다. #include <bits/stdc++.h> using namespace std; int n, res = 0; int a[101]; int main() { cin >> n; vector<int> ch(n); for(int i = 0; i < n; i++) { cin >> a[i]; } for(int i = 0; a[i]!='\0'; i++) { res = abs(a[i]-a[i+1]); if( res > 0 && res < n && ch[res] == 0 ) { ch[res] = 1; } } // 이 부분입니다. for(int i = 0; ch[i] != '\0'; i++) { if(ch[i] == 0) { cout << "NO"; return 0; } } cout<<"YES"; return 0; } 3번째 for문에서 i < n을 하면 NO부분에서만 success가 뜨고 위와 같이 하면 Yes부분에서만 Success가 뜹니다. 도움부탁드리겠습니다. 감사합니다.
안녕하세요 큰돌님 😀 1-N 백준 1629 문제에서 제공해주신 코드에 #include<bits/stdc++.h> using namespace std; typedef long long ll; ll a, b, c; ll go(ll a, ll b){ if(b == 1) return a % c; ll ret = go(a, b / 2); ret = (ret * ret) % c; if(b % 2)ret = (ret * a)% c; return ret; } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> a >> b >> c; cout << go(a, b) << "\n"; return 0; } 여기에서 if(b % 2)ret = (ret * a)% c; 원래 공식에 대입하면 이 부분에 (ret * a % c) % c 가 들어오는 것이 맞지 않나요..? 어떻게 이렇게 되는지 궁금합니다 ㅜㅜ go(2, 3) 이라고 할 때, 이렇게 되어서 if(b % 2)ret = (ret * a)% c; 이 아니라, if(b % 2)ret = (ret * (a % c))% c; 가 된다고 생각했는데 설명해주시면 감사합니다..ㅜㅜ 다른 질문에 답변 달아주신 내용 확인해서 이해하였습니다~!!
public boolean isNew(T entity) { if (!this.versionAttribute.isEmpty() && !(Boolean)this.versionAttribute.map(Attribute::getJavaType).map(Class::isPrimitive).orElse(false)) { BeanWrapper wrapper = new DirectFieldAccessFallbackBeanWrapper(entity); return (Boolean)this.versionAttribute.map((it) -> { return wrapper.getPropertyValue(it.getName()) == null; }).orElse(true); } else { return super.isNew(entity); } } 조건문을 타지 않고 else 절로 넘어가면 super.isNew() 를 호출하고, 상위 추상 클래스인 AbstractEntityInformation 클래스의 isNew() 메서드에서 Entity id 필드가 Null, 0L인지 판단하는 걸로 이해했습니다. 강의 범위가 아니긴 하지만 JpaMetamodelEntityInformation 클래스의 isNew() 내에서 versionAttribute가 존재하는지 확인하는 부분은 어떤 것을 확인하는 것인지 궁금합니다.
선생님 안녕하세요! 수업 잘 듣고 있습니다! 질문이 있습니다! 소켓은 커널모드로 진입해 네트워크를 통신하기 위한 추상 인터페이스다, h/w와 소통하기 위해 kernel의 도움을 받아야 하는데 네트워크 통신을 할 때 추상 인터페이스를 부르는 명칭이 소켓인것이고 I/O 장치와 상호작용 할 때는 file이라고 부르는 것이 맞나요?
github repository url : https://github.com/developer-yoni/ecommerce/tree/study/concurrency/redis 여기서 study/concurrency/redis 브랜치 를 확인해주시면 됩니다. StockServiceTest의 400번째 라인부터 503번째 라인까지 테스트 코드가 작성되어 있습니다. 큰 흐름은 동시성 이슈가 발생가능한 Stock에는 Lock을 걸지 않고, 다른 Entity인 Market Entity에 PessimisticLock을 걸어, PessimisticLock을 분산락으로 활용하려는 시도 입니다. 여기서 4_1 테스트는 Market에 PessimisticLock을 거는 트랜잭션과 Stock의 재고를 감소시키는 트랜잭션을 하나의 트랜잭션으로 묶었고, 4_2 테스트는 별개의 트랜잭션으로 분리했습니다. 이때 질문은 다음과 같습니다 Q1. 동시성 이슈가 일어나지 않는 다른 Entity에 PessimisticLock을 걸어 분산락처럼 활용하는게 문제가 되지 않을지 궁금합니다. 혹시 문제가 된다면 , 어떤 측면에서 문제가 될지 궁금합니다. 왜냐하면 어차피 동시성 이슈가 일어날 수 있는 측면의 값을 커밋하여 update함과 동시에 PessmisticLock을 반환하는 것이니 문제가 되지 않을것이라고 생각했기 때문입니다. Q2. PessimisticLock을 건 트랜잭션이 커밋되거나 롤백될 때 비로소 PessmisticLock이 반환된다는 점을 근거로, 4_2 테스트에서는 일부로 재고감소를 먼저 커밋한 후, Market의 PessimisticLock을 커밋하여, 반드시 업데이트가 이뤄난 후 락을 반환하는것을 의도하였습니다. 그러나 제 의도와 다르게 4_2 테스트는 계속 lock이 걸려있는? 흐름을 보이면서 테스트에 실패합니다. 그원인을 잘 모르겠습니다. 바쁘신 와중에 답변 달아주셔서 감사합니다 강사님.
The Web Console server could not be started. Possible cause: another server is already running at http://192.168.0.25:8082 Root cause: Exception opening port "8082" (port may be in use), cause: "java.net.BindException: Address already in use: bind" [90061-224] Exception in thread "main" org.h2.jdbc.JdbcSQLNonTransientConnectionException: Exception opening port "8082" (port may be in use), cause: "java.net.BindException: Address already in use: bind" [90061-224] at org.h2.message.DbException.getJdbcSQLException(DbException.java:690) at org.h2.message.DbException.getJdbcSQLException(DbException.java:489) at org.h2.message.DbException.get(DbException.java:212) at org.h2.util.NetUtils.createServerSocketTry(NetUtils.java:211) at org.h2.util.NetUtils.createServerSocket(NetUtils.java:177) at org.h2.server.web.WebServer.start(WebServer.java:412) at org.h2.tools.Server.start(Server.java:548) at org.h2.tools.Console.runTool(Console.java:216) at org.h2.tools.Console.main(Console.java:72) Caused by: java.net.BindException: Address already in use: bind at java.base/sun.nio.ch.Net.bind0(Native Method) at java.base/sun.nio.ch.Net.bind(Net.java:565) at java.base/sun.nio.ch.Net.bind(Net.java:554) at java.base/sun.nio.ch.NioSocketImpl.bind(NioSocketImpl.java:636) at java.base/java.net.ServerSocket.bind(ServerSocket.java:391) at java.base/java.net.ServerSocket.<init>(ServerSocket.java:278) at java.base/java.net.ServerSocket.<init>(ServerSocket.java:171) at org.h2.util.NetUtils.createServerSocketTry(NetUtils.java:207) ... 5 more cmd 에서 h2.bat 실행 시 이렇게 포트가 이미 사용중이라고 뜨는데요 포트 번호 바꿔서 사용해도 될까요? 8083 같은거로요!
안녕하세요 선생님, 좋은 강의 보여주셔서 감사합니다. 다름이 아니라 23강에서 문제 풀이 도중 이해가 안 가는 부분이 있어서 이렇게 여쭙습니다. <문제> -- 각 부서별 급여 최저치보다 더 많이 받는 사원들의 사원번호, 이름, 급여를 가져온다. <선생님 풀이> select empno, ename, sal from emp where sal > all (select min(sal) from emp group by deptno); 이렇게 진행되면 각 부서별 최저치에서 가장 높은 급여와 비교되는 것이 아닌가 싶어 질문드립니다. 총 인원이 14명인 경우 가장 최저치를 받는 사람들 3명(부서가 3개)을 제외하면 11명이 나와야 할 듯한데 선생님 답에서는 8명만 나와서요...
강사님 안녕하세요 :) 카드리더기 모델링 중 face 선택 시 스크린샷처럼 뭉개지는 현상이 있어 질문 드립니다. 처음부터 다시 만들어봤는데도 재현되었습니다. X-ray 모드에서 verticies 선택하고 move 하는 과정에서 뭔가 잘못되었나 싶기도 한데 혹시 짐작가시는 부분이 있을까요? 모델링할 때 어떤 부분을 주의해서 그리면 좋을지 궁금합니다 :)
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 테스트 코드를 작성하다가 궁금한점입니다! assertion을 사용할 때 JUnit이 아닌 AssertJ 를 추천하는 이유가 있을까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요! 좋은 수업 감사합니다:) 배열 문제와 풀이3(ArrayEx9)와 관련하여 질문드립니다. 초기 접근 방식 -상품 등록의 제약 조건인 10개 제한을 반복문의 조건으로 사용하고자 했습니다. 1의 문제 -배열의 길이를 변수로 설정하여 배열의 길이를 바꾸고자 하였지만, 배열은 최초 생성될 때의 길이가 고정된다는 것을 확인하였습니다. 해결책 탐색 배열의 길이를 바꾸는 방법을 찾아보니 총 2가지를 확인했습니다. (새로운 배열을 만든다는 점에서 같은 맥락인 것 같습니다..) -반복문 등을 이용해 배열을 복사하고 길이를 늘려 새로운 배열을 만드는 방법 -Array.copyOf()를 사용하여 새로운 배열을 만드는 방법(아직 학습하지 않았습니다.) 질문 1) 위의 3의 해결책말고 새로운 배열을 만드는 방법이 더 있나요? 2) 실무에서 실제로 제한된 숫자를 정해놓고 배열을 생성하나요? (회원가입에서 아이디와 패스워드의 개념으로 생각했습니다.) 읽어주셔서 감사합니다!
안녕하세요. 제로초님 좋은 강의 감사합니다. 해당 강의에서 fresh 상태일 때는 새로고침을 해도 서버에서 데이터를 가져오지 않고 캐시된 데이터를 사용한다고 하셨습니다. 그래서 fresh 상태일 때 새로고침을 하여 FollowRecommendSection 를 트리거 하였고 해당 API가 요청이 되는지 보았습니다. export default function FollowRecommendSection() { const { data } = useQuery<User[]>({ queryKey: ['users', 'followRecommends'], queryFn: getFollowRecommends, staleTime: 60 * 1000, // fresh -> stale, 5분이라는 기준 gcTime: 300 * 1000, }); return data?.map((user) => <FollowRecommend user={user} key={user.id} />); } export async function getFollowRecommends() { const res = await fetch(`http://localhost:9090/api/followRecommends`, { next: { tags: ['users', 'followRecommends'], }, cache: 'no-store', }); ... } 그런데 개발자도구 네트워크 탭에서는 밑에 사진과 같이 해당 API가 다시 요청되는것을 확인할 수 있었습니다. fresh 라 할지라도 API 요청은 항상 이루어지며 데이터만 캐시된 것을 ?? 가져오는 것인지 궁금합니다. 감사합니다.
안녕하세요 애그마 쌤 ! 얼마전 강의 완강하고 4일 동안 틈틈히 개발해서 간단한 앱을 만들어봤습니다,, ㅋㅋㅋ!! 자랑하고 싶은데.. 메일 주소가 없어서 일단 여기에 올려요 ㅋㅋㅋ ㅠ 직접 만든 첫 앱이라 기분이 좋네요 ㅋㅋ 심사 대처까지 강의에서 알려주셔서 한 번만 리젝당하고 빠르게 통과됐어요 ㅎㅎ 좋은 강의 제공해주셔서 감사합니다!!
안녕하세요 강사님, 반환 유형이 클래스 참조일 때 질문이 있습니다. 반환유형이 클래스형인 것보다는 메모리 효율을 위해서 클래스형 참조로 선언을 하는데, 반환하는 참조가 함수 내부에서 생성된 지역 인스턴스의 참조라면 함수 스코프를 벗어나면 해당 인스턴스는 소멸되므로 main함수에서는 참조를 못하게 되는 것 아닌가요? 이런 경우에는 반환 유형을 클래스형 참조가 아닌 클래스형으로 선언하는게 적절할까요? 감사합니다!
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 강의에서는 warn이 뜨고 name이 없다라는 콘솔문구가 뜨는데 저는 창을 들어가보면 에러는 똑같이 나는데 warn이 안뜨네여..