묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
섹션16 husky
git도 다운받았고 터미널도 git bash가 작동이 됩니다.근데 husky 다운이 안되네요. .git can't be found 따라하는데 계속 이 문장만 자꾸 뜹니다.그래서 인강에 나온 방법처럼 하지 않고 학습자료에 나와있는거 처럼 따라했는데 괜찮나요?학습자료 방법으로 해도 괜찮나요 추가 질문) git 을 계속 재설치해서 husky를 깔아도 .git can't be found만 뜨는데요. 왜그런걸까요
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
개념에 대한 질문입니다.
#include "bits/stdc++.h"using namespace std;constexpr int V = 3;int DamageSequence[6][3] = { { 9, 3, 1 }, { 9, 1, 3 }, { 3, 9, 1 }, { 3, 1, 9 }, { 1, 9, 3 }, { 1, 3, 9 } };int visited[64][64][64], scv[3], n;queue<tuple<int, int, int>> q;int BFS(int param1, int param2, int _param3){ visited[_param1][_param2][_param3] = 1; q.push({ param1, param2, _param3 }); while (!q.empty()) { int first = get<0>(q.front()); int second = get<1>(q.front()); int third = get<2>(q.front()); q.pop(); if (visited[0][0][0]) break; for (int i = 0; i < 6; i++) { int nextFirst = max(0, first - DamageSequence[i][0]); int nextSecond = max(0, second - DamageSequence[i][1]); int nextThird = max(0, third - DamageSequence[i][2]); if (visited[nextFirst][nextSecond][nextThird]) continue; visited[nextFirst][nextSecond][nextThird] = visited[first][second][third] + 1; q.push({ nextFirst, nextSecond, nextThird }); } } return visited[0][0][0] - 1;}int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> n; for (int i = 0; i < n; i++) cin >> scv[i]; cout << BFS(scv[0], scv[1], scv[2]) << "\n"; return 0;}1번째 질문은 일단 이해가 좀 가질 않는 부분은 BFS()를 호출해줄 때 각 SCV의 체력을 인덱스로 하는 지점에서 시작하는부분이 좀 이해가 가질 않습니다.체력을 기준으로 0, 0, 0에서 시작한다고 생각을 했는데 왜 배열의 중간부분부터 탐색을 해나가는지 궁금합니다.2번 째 질문입니다.만약 그게 좌표의 개념이라면 모두가 0이 되는 점 까지의 거리라서 BFS를 진행한 후에 visited의 0,0,0의 값에서 빼 주는 것인지. 좀 추상적으로 이해가 된 것 같아 여쭤봅니다. 오늘도 감사합니다
-
미해결Airflow 마스터 클래스
email operator dag 수행 시 오류
강의 내용대로 진행하여 dag파일 수행 시 아래와 같은 오류가 뜹니다.ㅠ 해결방법 알려주세요!!credential 에러인 듯한데, IMAP설정, 앱 비밀번호 설정, yaml파일 수정은 모두 완료했었습니다.! 6645fe320334 *** Found local files: *** /opt/airflow/logs/dag_id=dags_email_operator/run_id=manual__2024-09-01T09:02:54.442821+00:00/task_id=send_email_task/attempt=1.log [2024-09-01, 09:02:58 UTC] {local_task_job_runner.py:123} ▶ Pre task execution logs [2024-09-01, 09:02:59 UTC] {warnings.py:112} WARNING - /home/**/.local/lib/python3.12/site-packages/***/utils/email.py:155: RemovedInAirflow3Warning: Fetching SMTP credentials from configuration variables will be deprecated in a future release. Please set credentials using a connection instead. send_mime_email(e_from=mail_from, e_to=recipients, mime_msg=msg, conn_id=conn_id, dryrun=dryrun) [2024-09-01, 09:02:59 UTC] {email.py:272} INFO - Email alerting: attempt 1 [2024-09-01, 09:03:00 UTC] {taskinstance.py:3301} ERROR - Task failed with exception Traceback (most recent call last): File "/home/airflow/.local/lib/python3.12/site-packages/airflow/models/taskinstance.py", line 767, in executetask result = executecallable(context=context, **execute_callable_kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/airflow/.local/lib/python3.12/site-packages/airflow/models/taskinstance.py", line 733, in executecallable return ExecutionCallableRunner( ^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/airflow/.local/lib/python3.12/site-packages/airflow/utils/operator_helpers.py", line 252, in run return self.func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/airflow/.local/lib/python3.12/site-packages/airflow/models/baseoperator.py", line 406, in wrapper return func(self, args, *kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/airflow/.local/lib/python3.12/site-packages/airflow/operators/email.py", line 79, in execute send_email( File "/home/airflow/.local/lib/python3.12/site-packages/airflow/utils/email.py", line 80, in send_email return backend( ^^^^^^^^ File "/home/airflow/.local/lib/python3.12/site-packages/airflow/utils/email.py", line 155, in send_email_smtp send_mime_email(e_from=mail_from, e_to=recipients, mime_msg=msg, conn_id=conn_id, dryrun=dryrun) File "/home/airflow/.local/lib/python3.12/site-packages/airflow/utils/email.py", line 282, in send_mime_email smtp_conn.login(smtp_user, smtp_password) File "/usr/local/lib/python3.12/smtplib.py", line 739, in login (code, resp) = self.auth( ^^^^^^^^^^ File "/usr/local/lib/python3.12/smtplib.py", line 641, in auth response = encode_base64(initial_response.encode('ascii'), eol='') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ UnicodeEncodeError: 'ascii' codec can't encode character '\xa0' in position 26: ordinal not in range(128) [2024-09-01, 09:03:00 UTC] {logging_mixin.py:190} INFO - Task instance in failure state [2024-09-01, 09:03:00 UTC] {logging_mixin.py:190} INFO - Task start:2024-09-01 09:02:59.026829+00:00 end:2024-09-01 09:03:00.894255+00:00 duration:1.867426 [2024-09-01, 09:03:00 UTC] {logging_mixin.py:190} INFO - Task:<Task(EmailOperator): send_email_task> dag:<DAG: dags_email_operator> dagrun:<DagRun dags_email_operator @ 2024-09-01 09:02:54.442821+00:00: manual__2024-09-01T09:02:54.442821+00:00, state:running, queued_at: 2024-09-01 09:02:54.472998+00:00. externally triggered: True> [2024-09-01, 09:03:00 UTC] {logging_mixin.py:190} INFO - Failure caused by 'ascii' codec can't encode character '\xa0' in position 26: ordinal not in range(128) [2024-09-01, 09:03:00 UTC] {taskinstance.py:1225} INFO - Marking task as FAILED. dag_id=dags_email_operator, task_id=send_email_task, run_id=manual__2024-09-01T09:02:54.442821+00:00, execution_date=20240901T090254, start_date=20240901T090259, end_date=20240901T090300 [2024-09-01, 09:03:00 UTC] {taskinstance.py:340} ▶ Post task execution logs
-
미해결Python Streamlit을 활용한 대시보드 만들기 (feat. 빅데이터 분석기사 실기 준비)
1) GCP내에서 SSH 통해 깃헙과 연결시 main.py 파일이 연동 2) Powershell Conda 설정
안녕하세요 선생님생각했던것보다 훨씬 다양한 컨텐츠를 배우다보니 정말 좋은것 같습니다. 다만 세팅 부분에서... 강의에서 진행된 부분대로 동일하게 따라해보았는데 일부 활성화가 안되는 듯하여 문의 드립니다. [강의명 : Github Actions, Python Script 예제]gcp ssh와 깃헙 레포지토리 연동 관련해서...main.py 파일 변경 실습 진행중인데 캡쳐 상태의 에러와 같이 에러가 뜨고 main.py 파일을 읽었을때도 아무런 내용이 읽히지 않아서 혹시 실습중 잘못한 부분이 있나 문의드립니다."error: The following untracked working tree files would be overwritten by merge:main.pyPlease move or remove them before you merge." [강의명 : Miniconda 시스템 환경설정, Windows11]miniconda 설치후 Powershell에서 "Get-ExecutionPolicy" Unrestricted 로 변경 후 conda activate / conda activate base 명령후 (base)로 변하지 않아서 그 다음 강의 실습인 VSCODE 내 Powershell에서 conda 가 활성화 되지 않는데 혹시 놓친 부분이 없나 궁금합니다.
-
해결됨모두를 위한 대규모 언어 모델 LLM(Large Language Model) Part 1 - Llama 2 Fine-Tuning 해보기
PEFT_P-Tuning semantic similarity 예제 실행 오류
https://colab.research.google.com/drive/1Xzv-qhal48LknNYmTSI_-sEBmBWpioBl?usp=sharing위의 코드 실행 중 오류가 발생하였습니다 trainer = Trainer( model=model, args=training_args, train_dataset=tokenized_datasets["train"], eval_dataset=tokenized_datasets["test"], tokenizer=tokenizer, data_collator=data_collator, compute_metrics=compute_metrics, ) trainer.train()오류 발생 부분은 위의 파트이고 오류의 내용은 아래와 같습니다혹시 수정된 코드를 받을 수 있을까요?
-
미해결김영한의 실전 자바 - 중급 2편
강의가 너무재밌습니다.
강의가 머리에 쏙쏙들어와서 너무 재밌습니다. 혹시 디자인패턴 강의 내실 생각있으신가요? 다른 디자인패턴강의를 들어본적이 있는데 뭔가 이해하기가 너무힘들더라구요 ㅎㅎ
-
해결됨CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조
과정 중 리다이렉트와 캐싱에 대한 의문점.
감사히 내용 잘 듣고 있습니다! 몇가지 질문이 있어 질문 드립니다. 리다이렉트 후, 캐싱을 한다고 하는데, 캐싱을 하려고하면 www.naver.com 이 어떤 리소스가 필요한지 알아야 캐싱되어있는지 아닌지 확인 할 수 있을 것 같습니다. 따라서 영상에서 캐싱의 예시로 보여준 개발자 도구로 보여주신 캐싱이 해당 과정의 캐싱과 맞는 동작인지 궁금합니다.동일하게 리다이렉트 하려고 하면, 리다이렉트 할 정보가 필요한데 이 정보 또한 서버로부터 받아와야 가능한게 아닌가 싶습니다. 그래서 제가 이해하고 있는 순서는www.naver.com 검색 후 엔터dns 서버tcp 연결 (핸드세이크 과정 포함)클라이언트 http 요청서버 http 응답 (이때 리다이렉트 정보가 들어있으면 리다이렉트)html 반환(예시) 받고, 클라이언트가 해당 파일 읽고 추가적인 리소스가 필요한지 판단 후, 추가 요청 진행. (이때 캐싱되어있다면 요청 하지 않음)이렇게 입니다... 네트워크는 정말 어렵네요 ㅜㅜ헷갈리는 부분이 많아 질문드립니다. 감사합니다!
-
미해결[유니티 레벨 업!] 모듈식으로 개발하는 퀘스트&업적 시스템
Action & Delegate
영상을 보다보면 delegate을 쓰는 상황도 있고, UnityAction을 쓰는 상황도 있는데요.두 개가 물론 차이가 있지만 기능적으로는 비슷한 쓰임으로 사용되는 것 같은데 어디에 delegate를 사용하고 UnityAction을 사용하는지에 대한 기준이 있으신가요?? 아니면 편한 것으로 사용하는 것인가요??저도 코드를 작성해보다가 명확한 해답을 찾지 못해서 의견을 듣고자 질문드립니다.추가로 event와 UnityEvent도 쓰임이 비슷한 것으로 알고 있는데 사용할 때 기준이 있는지 알고싶습니다!감사합니다
-
미해결
bertopic 아나콘다3 쥬피터 노트북에서도 사용할 수 있나요?
최근 올려주신 bertopic 노트를 colab에서 잘 활용하고 있습니anaconda 3 쥬피터 노트북에서도 사용하려 하니 잘 되지 않습니colab도 쥬피터 노트북 베이스인 것으로 알고 있는데 최신버전임에modul bertopic설치가 안된다는 에러 메시지 계속 나오네코랩에서만 bertopic이 가능한지 문의드립니다
-
해결됨실전! Querydsl
fetch join 할 때 별칭
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]fetch join을 할 때 별칭을 사용하는 것을 지양하라고 알고 있는데, @Test public void fetchJoinUse() throws Exception { em.flush(); em.clear(); Member findMember = queryFactory .selectFrom(member) .join(member.team, team).fetchJoin() .where(member.username.eq("member1")) .fetchOne(); }.join에서 2번째 인자로 team을 주면 별칭을 주는 것 아닌가요?? QueryDsl에서는 상관이 없는 걸까요?
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
LinearRegression() 에러입니다^^
안녕하세요. 교수님 너무 좋은 강의 잘 듣고 있습니다.바쁘실텐데 바로바로 답변해주셔서 너무 감사드려요^^Bike Sharing Demend 예제소스 에러 질문이 있어서요..최근에 설치했는데.. 에러가 많이나서 사이킷런 1.0.2 파이썬 3.9.18으로 다운그레이했습니다. 넘파이는 몇버전으로 해야 할까요?아래는 에러내용입니다.[ 로그 변환, 피처 인코딩, 모델 학습/예측/평가 ] from sklearn.model_selection import train_test_split , GridSearchCV from sklearn.linear_model import LinearRegression , Ridge , Lasso y_target = bike_df['count'] X_features = bike_df.drop(['count'],axis=1,inplace=False) X_train, X_test, y_train, y_test = train_test_split(X_features, y_target, test_size=0.3, random_state=0) lr_reg = LinearRegression() lr_reg.fit(X_train, y_train) pred = lr_reg.predict(X_test) evaluate_regr(y_test ,pred)에러 --------------------------------------------------------------------------- DTypePromotionError Traceback (most recent call last) ~\AppData\Local\Temp\ipykernel_19124\3974685920.py in <module> 11 lr_reg = LinearRegression() 12 ---> 13 lr_reg.fit(X_train, y_train) 14 pred = lr_reg.predict(X_test) 15 D:\dev03\anaconda\lib\site-packages\sklearn\linear_model\_base.py in fit(self, X, y, sample_weight) 660 accept_sparse = False if self.positive else ["csr", "csc", "coo"] 661 --> 662 X, y = self._validate_data( 663 X, y, accept_sparse=accept_sparse, y_numeric=True, multi_output=True 664 ) D:\dev03\anaconda\lib\site-packages\sklearn\base.py in _validate_data(self, X, y, reset, validate_separately, **check_params) 579 y = check_array(y, **check_y_params) 580 else: --> 581 X, y = check_X_y(X, y, **check_params) 582 out = X, y 583 D:\dev03\anaconda\lib\site-packages\sklearn\utils\validation.py in check_X_y(X, y, accept_sparse, accept_large_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, multi_output, ensure_min_samples, ensure_min_features, y_numeric, estimator) 962 raise ValueError("y cannot be None") 963 --> 964 X = check_array( 965 X, 966 accept_sparse=accept_sparse, D:\dev03\anaconda\lib\site-packages\sklearn\utils\validation.py in check_array(array, accept_sparse, accept_large_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, ensure_min_samples, ensure_min_features, estimator) 663 664 if all(isinstance(dtype, np.dtype) for dtype in dtypes_orig): --> 665 dtype_orig = np.result_type(*dtypes_orig) 666 667 if dtype_numeric: DTypePromotionError: The DType <class 'numpy.dtypes.
-
미해결CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조
웹소켓과 브로드캐스트 테스트에 대한 질문
안녕하세요! css 강의 반복해서 들고 있는 한 학생입니다.질문이 있어 문의 드립니다.(네트워크의 기초 #5. 유니캐스트, 멀티캐스트, 브로드캐스트) 해당 강의 내용 중, 1분40초쯤경 웹소켓 통신을 활용해서 브로드 캐스트 테스트를 진행한다고 알려주셨습니다. 여기서 의문점이, 웹소캣은 TCP 기반으로 작동하는 것으로 알고있습니다. TCP는 브로드캐스트를 지원하지 않는 특징이 있다고도 알고 있습니다.따라서, 드는 생각은 어떻게 웹 소켓을 통해 브로드 캐스트 테스트를 진행하는 것인지 의문점이 듭니다. 단순히 웹 소켓을 활용해서 브로드캐스트 처럼 동작하도록 구성하여 브로드캐스트에 대한 예시를 든 것인지? 아니면 웹 소켓에서 UDP 사용을 통해 회피한것인지 궁금합니다! 항상 네트워크 관련되어 부족하거나 헷갈리는 부분이 있으면 다시 강의를 참조할 정도로 감사히 잘 듣고 있습니다!
-
해결됨친절한 블렌더 - [LV.0] 입문 필수
Selection to Active가 없어요
Selected, Active 강의-1:53, 영상에서 Selection to Active가 있는데 제 화면에는 없어요ㅜㅠ 블렌더 4.2버전을 사용하고 있습니다.4.2버전에서 바뀐게 아니라면 제가 에드온과 익스텐션에서 대부분의 에드온을 설치해서 그 영향으로 나타난 것 같습니다. 그런데 어떤 에드온 때문에 그런지는 잘 모르겠어요.만약 에드온 때문이라면 수강생 김지훈님이 질문 중 코드모드님이 답변하신 Extra Mesh Objects, Loop Tools, 3D Viewport Pie Menus, Extra Curve Objects만 설치하는 것이 좋을까요? 다음 강의를 들을 때 다르게 나올 것 같아서요.
-
해결됨Real MySQL 시즌 1 - Part 1
EXPLAIN ANALYZE 수행 시 쿼리 실행 계획이 예상과 다릅니다.
먼저 강의 내용이 아닌 책내용을 질문하게 되서 죄송합니다. 하지만 여기 말고 질문할 곳이 마땅치 않아 부득이하게 이곳에 적게 되었습니다. 부디 사정을 봐주시길 부탁드립니다. Real MySQL 1권의 10.2 실행 계획 확인(415pg)에서는 EXPLAIN ANALYZE 실행 시 나타나는 결과에서는 다음과 같은 규칙이 적용된다고 설명되어 있습니다. 들여쓰기가 같은 레벨에서는 상단에 위치한 라인이 먼저 실행들여쓰기가 다른 레벨에서는 가장 안쪽에 위치한 라인이 먼저 실행 이 말대로라면 아래 그림에서의 실행순서는 F, D, E, C, B, A 가 됩니다. 하지만 책에서는 실행순서가 D, F, E, C, B, A 로 된다고 적혀있습니다. 들여쓰기가 다른 레벨에서는 가장 안쪽에 위치한 라인이 먼저 실행된다고 하여 F 가 가장 먼저 실행될 줄 알았는데 D 부터 시작된다고 적혀있어서 혼동이 왔습니다. 혹시 왜 D 부터 시작하는지 설명을 부탁드릴 수 있을까요?감사합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-A 완탐 시간초과 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.http://boj.kr/32d8365f752d4ea7a3ec61b9ad94f90c안녕하세요 큰돌님. 저의 풀이는 combi 함수가 아닌 원복을 하며 완전탐색으로 풀이를 진행했습니다.하지만 시간초과가 발생하여 어느 부분에서 시간 초과가 발생하는지, 그리고 시간초과가 발생하지 않을 라면 저의 코드에서 어떤 부분을 수정해야 하는지 알 수 있을까요??항상 좋은 강의 해주셔서 감사드립니다 :)
-
해결됨실무에 바로 적용하는 스토리북과 UI 테스트
Visual Test
스토리북 자체에 Action 탭 오른쪽에 Visual Test라는 탭이 있는걸 확인했습니다.<Chromatic을 활용한 Visual 테스트> 강의와 같은 내용을 기능인가 해서 여쭤봅니다! 같은 기능인데 좀 더 확인하기 쉽게 탭으로 스토리북에서 제공하고있는건가 해서요..ㅎㅎㅎ
-
미해결실전! GitHub Actions으로 CI/CD 시작하기
cloud9 서비스 종료
AWS cloud9이 7월 25일부로 서비스를 종료했다고 하는데요대신 AWS cloudshell로 진행해도 될까요?만약 그렇다면 ec2 인스턴스를 하나 만들고, 여기에 IAM역할인 admin-cloud9을 붙인 다음 cloudshell에서 해당 인스턴스로 ssh를 통해 접속하면 되나요?
-
해결됨초보자를 위한 BigQuery(SQL) 입문
2-6 연습문제 15번 질문있습니다!
15.트레이너가 보유한 포켓몬(trainer_pokemon)이 제일 많은 트레이너는 누구일까요? 문제에서 SELECT trainer_id, COUNT(id) AS cnt FROM basic.trainer_pokemon WHERE status != "Released" GROUP BY trainer_id ORDER BY cnt DESC; 이렇게 풀어봤는데 풀어준 포켓몬이 제외되어서 카일님과 다른 답이 도출되더라구요. 풀어준 것은 보유중이 아닐거라 생각해서 쿼리를 작성했었는데 이렇게 풀이한 것도 괜찮은 풀이방법인지 질문드립니다!
-
해결됨Flutter 앱 개발 기초
에뮬레이터 디버깅해도 변화가 없네요
오픈 카카오톡으로 문의주시면 더 빠르게 답변 받으실 수 있어요 :)run without debugging 오류가 납니다. run without debugging 실행하면 강의내용처럼 하얀바탕에 앱바 생겨야 하는데 변화가 없습니다.디버그 컨솔에는 뭐라 안내가 되는데 무슨 조치가 필요한모르겠네Launching lib\main.dart on sdk gphone64 x86 64 in debug mode...Could not locate aapt. Please ensure you have the Android buildtools installed.No application found for TargetPlatform.android_x64.Is your project missing an android\app\src\main\AndroidManifest.xml?Consider running "flutter create ." to create one. 왕초보지만 잘 따라왔는데 어흑... ㅜㅜ
-
미해결자바 코딩테스트 - it 대기업 유제
"이동 횟수" 문제가 변형된다면?
안녕하세요 강사님! 강의 잘 보고 있습니다."이동 횟수"문제에서 모든 물건의 무게가 2kg 이상 5kg이하라는 조건 덕분에 타이타닉 문제와 같이 풀 수 있다는 사실은 이해했습니다. 그런데 혹시 이런 조건이 없고, 한 번에 옮길 수 있는 무게도 임의의 입력값으로 들어와서 정해진다면 정말 어려운 문제가 될 것 같은데, 이런 경우엔 어떻게 문제를 풀이할 수 있을까요? 다이나믹으로 풀 수 있을까 혼자 고민해봤는데 좋은 풀이법이 생각나지 않아 질문드립니다!