묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
효율성에 대한 질문입니다.
안녕하세요 선생님 설명을 듣기 전 미리 문제를 풀었는데 선생님과 다르게 1~9까지의 배열을 비교하는 코드를 작성해 보았습니다. 그런데 여기서 궁금한 점이 저는 각 그룹이나 행, 열등을 배열에 하나씩 집어 넣어서 정렬을 시킨 이후 1~9까지의 숫자가 담긴 배열과 비교를 했는데, 선생님의 코드와는 다르게 정렬이라는 알고리즘이 한번 더 들어가기 때문에 선생님 보다 비용이 더 발생하는 코드인지 궁금합니다. arr = [list(map(int, input().split())) for _ in range(9)] temp = list(range(1, 10)) flag = True # 다중 반복문 탈출용 변수 temp1 = [] # 행 체크용 배열 temp2 = [] # 열 체크용 배열 temp3 = [] # 그룹 체크용 배열 for i in range(9): temp1 = copy.deepcopy(arr[i]) # 원본 배열을 그대로 유지하기 위해 깊은 복사. temp1.sort() # 배열에는 1~9 까지 들어있으므로 정렬한 두 배열이 다르다면 NO로 끝냄 if temp1 != temp: print("NO") break # 열 체크를 위해 다시 반복문 수행 for j in range(9): temp2.append(arr[i][j]) temp2.sort() if temp2 != temp: print("NO") break temp2 = [] # 그룹이 총 9개로 이루어져 있고, 열은 3개 단위로 끊어져야 하므로 3의 배수일때마다 체크한다. if i % 3 == 0: for j in range(9): # 행 또한 3개 단위로 끊어서 계산해야 하므로 3의 배수일때마다 체크한다. if j % 3 == 0: x = j for k in range(3): temp3.append(arr[i][x]) temp3.append(arr[i+1][x]) temp3.append(arr[i+2][x]) x += 1 temp3.sort() if temp3 != temp: print("NO") flag = False break temp3 = [] if not flag: break if not flag: break else: print("YES")
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
만약에 FPS관련 이동 동기화에 경우
강의를 듣다가 의문이 생겨서 질문을 남깁니다, FPS이동 동기화 또한 클라이언트에서 먼저 이동후 서버에다가 패킷을 전송한후 자신이 움직였음을 알리는 방식이 대부분이라고 하셨습니다. 하지만 1초다 4번 패킷을 보내는 경우에는 캐릭터가 목표 좌표를 받아와서 이동하는 방식으로 하게 될경우 오차가 발생하는 경우가 있을거 같고 그 오차로인해서 플레이어 이동 동기화가 마치 한템포 늦을거 같은 느낌이 듭니다. 만약에 진짜 FPS게임으로 동기화를 한다면 1초에 4번이 아닌 서버가 플레이어의 응답을 대기하는 형식으로 하는게 더 좋은 방식인가요?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
뜬금없지만 시간타입에 대해 질문이 있습니다
안녕하세요? JPA에서 시간에 대해 매핑할때 제타위키에서는 Timestamp를 쓰라고 되어있는데 저는 자바8부터는 LocalDateTime을 사용하는걸 권장한다고 배웠거든요. 실제로 직접 매핑해보니 둘다 되긴되던데 영한님은 어떤 타입을 주로 추천하시는지 궁금합니다 !
-
미해결UX UI 디자이너의 연봉 올려주는 프로토타이핑 툴, 프린서플
웹 기반 플랫폼 프로토타이핑에도 적합할까요?
안녕하세요. 유튜브를 통해 알게 되어 완강 후 저에게는 아직 어려운 부분이 있어 다시 듣기 중입니다 :) 보던 중 궁금증이 생겨 문의드립니다. 기능이 tap과 같이 모바일 프로토타이핑에 맞춰져 있다는 생각이 들었는데 혹시 모바일이 아닌 웹 기반 플랫폼 프로토타이핑에도 적합할까요? 관련된 강의도 있는지 궁금합니다!
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
프로필 페이지에서 401 에러가납니다 ㅜㅜ
로그인 후 프로필 페이지로 가면 401 에러가 납니다. 배포후에만 발생하는 문제이며 로컬에서는 잘 작동합니다. back서버에서 /user/followers 라우터에서 isLoggedIn 을 체크하는데 여기서 req.isAuthenticated() 가 false 가 되어 로그인이 필요합니다 라는 메세지가 브라우저로 전달됩니다. (Network 탭에 followers 클릭후 Response 택 클릭시 로그인이 필요합니다 라고 표시됩니다) (물론 followings 도 마찬가지입나다) 이때는 로그인이 풀려보이지는 않는데 다시 Home 으로 가보면 로그인이 풀려있습니다. ㅁ followers 혹은 followings 요청 401 에러 귀찮게 안해드리려고 혼자서 어떻게든 해보려 했는데 도저히 어떻게 수정해야 할지도 모르겠네요 ㅜㅜ
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
안녕하세요 권철민 선생님~
(질문은 아니지만.. ) 안녕하세요 권철민 선생님~ 미리보기강의를 듣고 주저 없이 수강신청하게 되었습니다..! 책도 구매하고 열심히 해보려고 합니다..! 비전공자이지만.. 선생님 강의를 들으며 포기하지 않고, 열심히 공부하겠습니다..!! 선생님의 강의는 저에게 포기하지 않으려는 마음을 다시 심어주셨습니다. 진심으로 감사합니다..!!
-
[개정판] 파이썬 머신러닝 완벽 가이드
안녕하세요 권철민선생님
삭제된 글입니다
-
미해결실전 프로젝트로 배우는 타입스크립트
Covid19 project 이 동작 하는중 에러 납니다
안녕하세요 질문이 있습니다. 제가 최종프로젝트-ES6 문법 전까지 따라가면서 소스에 TYPE을 입혔습니다. npm run build 로 문제 없이 tsc가 수행 되고 complile error가 안나 옵니다 근데 index.html 을 open with live server 로 돌리면 아래와 같은 exception 이 나옵니다. 그래서 tsconfig.json의 target을 ES5 에서 ES6 로 바꾸면 위의 에러는 안 납니다 하지만 ES6 로 바꾸면 다른 EXCEPTION 이 납니다. 제가 멀 잘못 따라 했을 까요?? 답변 부탁 드립니다. 감사합니다
-
해결됨실전! 스프링 데이터 JPA
jpa와 mysql을 붙일때요..
강의 항상 잘 듣고 있습니다^^!! 수업과는 조금? 상관이 없는 질문 일수도 있는데요. 개인적으로 복습해보려고 아마존 S2에 Mysql 테이블 생성해서 데이터 넣고 제가 jpa, jpa-data 등 이용해서 자료 한번 조회하는 간단한 프로젝트를 해보고 있습니다. 그런데 ㅠㅠ DB에 데이터는 정상적으로 들어가는데 JPA가 쏘는 쿼리가 영 이상한지 계속 오류가 뜨네요. 무엇이 잘못된 거일까요? 작동시키려는 쿼리? 메소드는 단순합니다. 전체 정보 불러오기 입니다. @GetMapping("/findall") public String findAll() { String result = ""; for (Site site : siteRepository.findAll()) { result += site.toString() + "<br/>"; } return result; } application.yml spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://54.xxx1xx.x3/shark1 username: password: jpa: hibernate: ddl-auto: none show-sql: true database: mysql data: jpa: repositories: enabled: true siteRepository.java @Transactional(readOnly = true) public interface SiteRepository extends JpaRepository<Site, Long> { List<Site> findByArea1(String area1); } Site.java @Entity @Getter @Setter @Table(name = "site") public class Site { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private long site_id; private String name; private String location; private String area1; private String area2; private String info; } 소스는 이러하구요 쿼리가 나갈때 findall() 호출하면 Hibernate: select site0_.site_id as site_id1_0_, site0_.area1 as area2_0_, site0_.area2 as area3_0_, site0_.info as info4_0_, site0_.location as location5_0_, site0_.name as name6_0_ from site site0_ 이런식으로 나갑니다 ㅠㅠㅠ DB 칼럼도 도메인이랑 모두 맞춰놨는데요 ㅠㅠ 제가 뭔가 JPA에 대해 설정을 잘못한게 있을까요? 도움 꼭 부탁드립니다. ㅠㅠ
-
미해결스프링 핵심 원리 - 기본편
Repository 애노테이션에 대해서
안녕하세요 영한센세!! 강의를 듣다가 @Repository 애노테이션에 대해서 궁금한 점이 생겨서 질문을 남깁니다!! "스프링 데이터 접근 계층으로 인식하고, 데이터 계층의 예외를 스프링 예외로 변환해준다." 제가 이해한 바로는 스프링 데이터 접근 계층 : 코드Level의 예외 데이터 계층의 예외 : DB (SELECT, INSERT, DELETE) Level의 예외 라고 이해했습니다... 그렇다면 만약 DB Level의 예외가 발생하면 코드Level의 예외로 반환해준다. 로 결론이 났는데 이해한 내용이 맞는지 궁금합니다🤔 ps. 간략한 예시가 있을까용🙏🏻?
-
미해결홍정모의 따라하며 배우는 C언어
while(*str)??
void Transpose(char* str) { while (*str) { if (islower(*str)) *str = toupper(*str); else if (isupper(*str)) *str = tolower(str); str++; } 1. 트랜스포즈함수에서 while문 조건식에 (*str)이 의미가 뭘까요?? *str에 값이 있다면 while문으로 들어가서 실행해라는 의미인가요?
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
log
log는 어떤 목적으로 사용되는 건지 궁금합니다. 그냥 html창에 주석 을 다는 것과 다른 용도가 있는지 구분이 잘 안가용
-
미해결홍정모의 따라하며 배우는 C언어
typedef에서 *하나와 두개의 차이
char(*complicated_function1())[3] { return &char3; // Returns a pointer to char[3] typedef char(*FRPTC3())[3]; typedef char(*(*PTFRPTC3)())[3]; FRPTC3* fptr2 = complicated_function1; PTFRPTC3 fptr3 = complicated_function1; 여기서 FRPTC3의 *하나와 PTFRPTC3의 * 두개의 차이는 뭐죠?? 이중포인터인가요??
-
미해결홍정모의 따라하며 배우는 C++
헤더 파일(1.11강)
open containing folder를 이용하여 myheaders파일을 새로 만들고 add.h파일을 옮기고 난 후 우측 explorer창에서 헤더 파일을 우클릭 하고 open을 눌렀는데 계속 실행이 안 되었습니다. include 하여 빌드는 되긴 하지만 이렇게 실행이 계속 안되는게 보편적인 문제인 건지 아니면 제 컴퓨터에 한해서 실행이 안 되는 건지 궁금하여 질문 남깁니다!!
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
안녕하세요 궁금한게 있어서 질문 드려봅니다
다름이 아니라영상의 27분 50초 쯤 SendBuffer에 대해서C++일경우에 레퍼런스 카운트를 이용해서 0이라면 풀에 반환한다고 말씀하셨는데요.C#에서도 아래처럼 1) 가능한 부분이 아닌가 싶어서 궁금해서 질문드려봅니다TLS 환경에 일정량의 SendBuffer Pool을 만들어 놓고 TLS환경에는 싱글스레드 처럼 하나의 스레드만 접근이 가능하므로 SendBuffer.Open시에 SendBuffer에 FreeSize가 reserveSize보다 크면 Pool에 반납을 하고 새롭게 미리 할당된 메모리를 가져오고 기존 메모리를 초기화해서 다시 풀에 넣는방식이라면 가능하지 않을까 싶은데 어떻게 생각하시는지 궁금합니다 추가질문 입니다. 2) 아래와 같은 이유로 SendBuffer를 새로 할당한 것인가요?C++의 레퍼런스 카운트를 이야기한 부분이 혹시Send시에 SocketAsyncEventArgs의 BuffList에 ArraySegment값들이 들어가고(원본의 참조형태로 들고 있기 떄문에) 그걸 Socket.SendAsync에서 호출하게 되는데 커널단에서 실제 Send 처리 이후의 메모리의 레퍼런스 카운트 시점을 알아야 정확히 풀로 반환할 수 있기 때문인건가요? 위와 같은 문제라서SendBuffer는 새로 할당하는 방법을 선택하신건지도 궁금합니다 3) C#에선 풀은 세션 별로 버퍼 풀방법 뿐인건가요?결국 레퍼런스 카운트 때문이라도C#에선Pool을 활용하려면 결국 세션 단위로 버퍼풀을 만들어서 사용하는 방법뿐일까요?
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
auth.js 에서 cookies가 undefined로 뜹니다
auth.js 에서 req.cookies를 찍어보면 undefined로 뜹니다. 같은문제로 다른 분들이 질문하신 것들을 참고해서 제 코드를 확인해봤는데 오타문제나 cookieParser를 빠뜨려서 생긴 문제는 아니었고요. 현재 저는 cors를 back에서 직접 해주고 있는데 어떻게 해결해야 하나요? let auth = (req, res, next) => { // 인증처리 하는 곳 // 클라이언트 쿠키에서 토큰을 가져온다 let token = req.cookies.x_auth; console.log('쿠키', req.cookies.x_auth); // 토큰을 복호화 한 후 유저를 찾는다. User.findByToken(token, (err, user)=>{ if(err) throw err; // 유저가 없으면 인증 No if(!user) return res.json({isAuth:false, error: true}); // 유저가 있으면 인증 Okay req.token = token; req.user = user; next(); }) }
-
미해결따라하며 배우는 리액트, 파이어베이스 - 채팅 어플리케이션 만들기[2023.12 리뉴얼]
강사님 안녕하세요 강의 다시 처음부터 복습하려고 보고 있습니다!
그런데 아래와 같이 문구가 뜹니다. useEffect에서 history를 사용했을 때 console창에 아래와 같은 문구가 뜨는데 해결방법이 있을까요?? console.log창에서 아래와같이 문구가뜹니다. Line 26:6: React Hook useEffect has a missing dependency: 'history'. Either include it or remove the dependency array react-hooks/exhaustive-deps useEffect(() => { firebase.auth().onAuthStateChanged(user => { if (user) { history.push("/"); } else { history.push("/login"); } }) }, [])
-
미해결그리드(Grid) 핵심이론 및 실전 활용
에밋 단축키 관련해서 질문 있어요
코드에서 에밋 단축키 설정할 때에 이미 다른 단축키 설정이 되어있다고 하면 못하는건가요? 제가 설치한 vscode에서는 ctrl + d 가 사용중이더라고요. 아직 이게 뭔지 모르겠지만;; ctrl+d로 고치지 않고 초기값 그대로 사용해도 수업에는 지장이 없는지요? 넘넘 기초적인 질문드려서 죄송합니다.
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
TypeError: postData.split is not a function 에러 질문 있습니다!
안녕하세요! 항상 좋은 강의 잘 듣고 있습니다. 감사합니다. 현재 챕터4 끝까지 수강하고 다시 복습하고 있었는데, 자꾸 위와 같은 에러가 발생합니다. 이미 저랑 같은 질문을 했던 분들이 많이 계셔서 밑에 달린 제로초님 답변 따라 PostCard부터 쭉 확인해봤는데도 어떤 문제인지 찾지 못했습니다.. 리덕스데브툴로 확인해보니,ADD_POST_REQUESTADD_POST_SUCCESSADD_POST_TO_ME 까지 실행됐다가 에러가 발생합니다. // PostCard.js <Card.Meta avatar={<Avatar>{post.User.nickname[0]}</Avatar>} title={post.User.nickname} description={<PostCardContent postData={post.content} />} /> // reducers/post.js const dummyPost = (data) => ({ id: data.id, content: data.content, User: { id: 1, nickname: '제로초', }, Images: [], Comments: [], }); // reducers/user.js case ADD_POST_TO_ME: draft.me.Posts.unshift({ id: action.data }); break; // sagas/post.js function* addPost(action) { try { // const result = yield call(addPostAPI, action.data); yield delay(1000); const id = shortId.generate(); yield put({ type: ADD_POST_SUCCESS, data: { id, content: action.data, }, }); yield put({ type: ADD_POST_TO_ME, data: id, }); const onSubmitForm = useCallback(() => { dispatch({ type: ADD_POST_REQUEST, data: { text, }, }); }, []); PostForm의 data: { text } 부분을 그냥 data: text, 로 입력해봤는데그때부터는 위와 같은 TypeError는 발생하지 않았지만, 글이 빈칸으로 포스팅되고 리덕스로 확인해보니 content 가 빈칸으로만 출력되었습니다..
-
미해결그로스해킹 - 데이터와 실험을 통해 성장하는 서비스를 만드는 방법
교차 세일의 기준이 제 생각엔
안녕하세요 ^^ 저는 서동기입니다. 제가 생각하는 크로스세일은 연관 검색어로 노출된 상품을 고객이 구매할 때를 말하는 것 같습니다. 그래서 아까 강의중 예문에 연관 키워드가 들어간 예문이 크로스세일인것 같습니다. 양승화멘토님의 고견을 듣고 싶습니다.^^