- Видео 205
- Просмотров 186 369
문어박사 IT편의점
Южная Корея
Добавлен 13 июл 2022
- 대기업 코딩테스트 출제위원 (2017~2021)
- 삼성전자 코딩테스트 강의 (2014~현재)
- LG전자 코딩테스트 강의 (2016~2020)
- SSAFY 알고리즘 강의 (2022~2023)
- SCSA 알고리즘 강의 (2017~현재)
- 삼성전자 코딩테스트 강의 (2014~현재)
- LG전자 코딩테스트 강의 (2016~2020)
- SSAFY 알고리즘 강의 (2022~2023)
- SCSA 알고리즘 강의 (2017~현재)
[삼성기출 #57] 마법의숲 탐색 (코드트리, 파이썬)
코드트리 기출: 삼성 SW 역량테스트 기출 #57
마법의숲 탐색
정답코드: doctor-moon.notion.site/102b651a925a80209817e330b60243f8?pvs=4
문제링크: www.codetree.ai/training-field/frequent-problems/problems/magical-forest-exploration
마법의숲 탐색
정답코드: doctor-moon.notion.site/102b651a925a80209817e330b60243f8?pvs=4
문제링크: www.codetree.ai/training-field/frequent-problems/problems/magical-forest-exploration
Просмотров: 1 509
Видео
[삼성기출 #56] 고대 문명 유적 탐사 (코드트리, 파이썬)
Просмотров 804Месяц назад
코드트리 기출: 삼성 SW 역량테스트 기출 #56 고대 문명 유적 탐사 정답코드: doctor-moon.notion.site/102b651a925a807b8ca7dbda28eb9ad3?pvs=4 문제링크: www.codetree.ai/training-field/frequent-problems/problems/ancient-ruin-exploration
[삼성기출 #55] 루돌프의 반란 (코드트리, 파이썬)
Просмотров 2,7 тыс.7 месяцев назад
코드트리 기출: 삼성 SW 역량테스트 기출 #55 루돌프의 반란 정답코드: doctor-moon.notion.site/689782959b5b443baf793fe2af785949?pvs=4 문제링크: www.codetree.ai/training-field/frequent-problems/problems/rudolph-rebellion/description?page=1&pageSize=20
[삼성기출 #54] 왕실의 기사대결 (코드트리, 파이썬)
Просмотров 1,6 тыс.7 месяцев назад
코드트리 기출: 삼성 SW 역량테스트 기출 #54 왕실의 기사대결 정답코드: doctor-moon.notion.site/aef74fd10a264d3bb932662cc73d26e6?pvs=4 문제링크: www.codetree.ai/training-field/frequent-problems/problems/royal-knight-duel/description?page=1&pageSize=20
[삼성기출 #53] 메이즈 러너 (코드트리, 파이썬)
Просмотров 1,3 тыс.7 месяцев назад
코드트리 기출: 삼성 SW 역량테스트 기출 #53 메이즈 러너 정답코드: doctor-moon.notion.site/1d440a793dc641ccaecdcd15734cd266?pvs=4 문제링크: www.codetree.ai/training-field/frequent-problems/problems/maze-runner/description?page=1&pageSize=20
[삼성기출 #52] 포탑 부수기 (코드트리, 파이썬)
Просмотров 8787 месяцев назад
코드트리 기출: 삼성 SW 역량테스트 기출 #52 포탄 부수기 정답코드: doctor-moon.notion.site/999ced91db09474a87b766ed81f12b51?pvs=4 문제링크: www.codetree.ai/training-field/frequent-problems/problems/destroy-the-turret/description?page=1&pageSize=20
[삼성기출 #51] 코드트리빵 (코드트리, 파이썬)
Просмотров 9737 месяцев назад
코드트리 기출: 삼성 SW 역량테스트 기출 #51 코드트리빵 정답코드: doctor-moon.notion.site/aeb743a56b334af4b31be3180060c90f?pvs=4 문제링크: www.codetree.ai/training-field/frequent-problems/problems/codetree-mon-bread/description?page=1&pageSize=20
[삼성기출 #50] 싸움땅 (코드트리, 파이썬)
Просмотров 5687 месяцев назад
코드트리 기출: 삼성 SW 역량테스트 기출 #50 싸움땅 정답코드: doctor-moon.notion.site/673dbdfae7b14e82b28319713dcf28ff?pvs=4 문제링크: www.codetree.ai/training-field/frequent-problems/problems/battle-ground/description?page=1&pageSize=20
[삼성기출 #49] 나무박멸 (코드트리, 파이썬)
Просмотров 4907 месяцев назад
코드트리 기출: 삼성 SW 역량테스트 기출 #49 나무박멸 정답코드: doctor-moon.notion.site/313f8cc73e9542bbb44fcab47d6885f9?pvs=4 문제링크: www.codetree.ai/training-field/frequent-problems/problems/tree-kill-all/description?page=1&pageSize=20
[삼성기출 #48] 꼬리잡기놀이 (코드트리, 파이썬)
Просмотров 6387 месяцев назад
코드트리 기출: 삼성 SW 역량테스트 기출 #48 꼬리잡기놀이 정답코드: doctor-moon.notion.site/4800e49d779146d48a40a7af533d52c9?pvs=4 문제링크: www.codetree.ai/training-field/frequent-problems/problems/tail-catch-play/description?page=1&pageSize=20
[삼성기출 #47] 예술성 (코드트리, 파이썬)
Просмотров 7277 месяцев назад
코드트리 기출: 삼성 SW 역량테스트 기출 #47 예술성 정답코드: doctor-moon.notion.site/bda358f953334db5a35a6ec186d5ffe1?pvs=4 문제링크: www.codetree.ai/training-field/frequent-problems/problems/artistry/description?page=1&pageSize=20
[삼성기출 #46] 술래 잡기 (코드트리, 파이썬)
Просмотров 1,1 тыс.7 месяцев назад
코드트리 기출: 삼성 SW 역량테스트 기출 #46 술래 잡기 정답코드: doctor-moon.notion.site/2263479e626548cf8a68b6c4d3059ac5?pvs=4 문제링크: www.codetree.ai/problems/hide-and-seek/description
[삼성기출 #45] 23291. 어항 정리 (백준, 파이썬)
Просмотров 5177 месяцев назад
백준 문제집: 삼성 SW 역량테스트 기출 #45 23291. 어항 정리 문제집링크: www.acmicpc.net/workbook/view/1152 정답코드: doctor-moon.notion.site/23291-8020b9d798234dab8c7f1386d54a8e44?pvs=4 문제링크: www.acmicpc.net/problem/23291
[삼성기출 #44] 23289. 온풍기 안녕! (백준, 파이썬)
Просмотров 2557 месяцев назад
백준 문제집: 삼성 SW 역량테스트 기출 #44 23289. 온풍기 안녕! 문제집링크: www.acmicpc.net/workbook/view/1152 정답코드: doctor-moon.notion.site/23289-53da322a6832467caa91e1b680f7bafe?pvs=4 문제링크: www.acmicpc.net/problem/23289
[삼성기출 #43] 5373. 큐빙 (백준, 파이썬)
Просмотров 1927 месяцев назад
백준 문제집: 삼성 SW 역량테스트 기출 #43 5373. 큐빙 문제집링크: www.acmicpc.net/workbook/view/1152 정답코드: doctor-moon.notion.site/5373-717e0bca7ef849c596ed3f4e90b62041?pvs=4 문제링크: www.acmicpc.net/problem/5373
[삼성기출 #42] 23290. 마법사 상어와 복제 (백준, 파이썬)
Просмотров 3757 месяцев назад
[삼성기출 #42] 23290. 마법사 상어와 복제 (백준, 파이썬)
[삼성기출 #41] 21611. 마법사 상어와 블리자드 (백준, 파이썬)
Просмотров 3667 месяцев назад
[삼성기출 #41] 21611. 마법사 상어와 블리자드 (백준, 파이썬)
[삼성기출 #39] 13460. 구슬 탈출 2 (백준, 파이썬)
Просмотров 1,1 тыс.8 месяцев назад
[삼성기출 #39] 13460. 구슬 탈출 2 (백준, 파이썬)
[삼성기출 #34] 20061. 모노미노도미노 2 (백준, 파이썬)
Просмотров 2108 месяцев назад
[삼성기출 #34] 20061. 모노미노도미노 2 (백준, 파이썬)
[삼성기출 #31] 17837. 새로운 게임 2 (백준, 파이썬)
Просмотров 1748 месяцев назад
[삼성기출 #31] 17837. 새로운 게임 2 (백준, 파이썬)
[삼성기출 #30] 12100. 2048 (Easy) (백준, 파이썬)
Просмотров 4688 месяцев назад
[삼성기출 #30] 12100. 2048 (Easy) (백준, 파이썬)
[삼성기출 #28] 23288. 주사위 굴리기 2 (백준, 파이썬)
Просмотров 4368 месяцев назад
[삼성기출 #28] 23288. 주사위 굴리기 2 (백준, 파이썬)
강의 감사합니다!!
@@서무성-b4c 노력한만큼 좋은결과 있길 바랍니다! 파이팅^^
테스트케이스 1개가 통과못하는데 불가능한 경우 하나를 알수가 없네요 ㅜㅜ 문어박사님 코드 복붙해도 통과가 안돼요
그렇네요! 오래전에 풀이하면서 붙여 넣은거라 초기 cj값을 1~100에서 시작해야하는데(좌우에 패딩으로 0을 붙였으니) 그렇게 되 있지 않아서, 가장 오른쪽을 탐색하지 못하게 되어있네요, 실제 수업중에 풀이한 답안으로 수정했으니 다시한번 정답코드 참조하세요 (알려주셔서 고맙습니다^^)
휴 IM 대비도 생각보다 쉽지 않네요.. 잘 정리하고 실전문제 열심히 풀어서 내년에는 좋은 소식 가지고 찾아오겠습니다. ㅎㅎ
전형적인 알고리즘 문제에 비해서 IM 등급은 오히려 풀이방법을 생각하다가 당황하는 수가 있습니다. 가능한 루프를 사용한 완전탐색(전체순회)를 기본으로 아이디어 몇 개 내보시고, 구현가능하고 답이 나올만한 풀이법으로 접근하시길!
항상 많이 배워갑니다. 덕분에 실력이 많이늘었습니다. 감사합니다!
오랜만에 글 쓰시는것 같은데 제일 듣기좋은 답글이네요^^ 꾸준히 연습하셔서 원하는대로 좋은 결과 있기를 바랍니다! 파이팅!
와 ㅠㅠ 무료강의라고 하기에는 퀄리티가 너무 상당한데요 ㅎㅎ 정말 감사합니다! 코테 준비하는 학생인데 너무너무 이해가 잘 되었습니다 ㅎ
처음 그래프 탐색 문제를 풀 때 시작하기 겁났는데 선생님 강의 따라서 풀다보니 점점 쉬워지는거 같네요 문제 조건만 바뀌고 풀이 방식은 다 비슷하단걸 느껴요
@@aurr5767그래프탐색 기본문제들을 그엏게 충분히 익히신후에 시뮬레이션이 결합된 응용문제들을 풀이하시기바랍니다! 파이팅!
@@IT-zk3so 헉 이런 시간에.. 조언 감사합니다
와 이거 예전에 되게 오랬동안 시간써서 풀었던 것 같은데 진짜 풀이법 엄청나네요! 히든 테케까지 생각해주셔서 감사합니다!
노력한만큼 좋은 결과 얻으시기 바랍니다! 파이팅하세요^^
아.. 조금 어렵네요 이게 D3문제라니 아직 넘어야할 산은 많은데 벌써 떨리네요
꾸준히 연습해서 실력이 늘어가도 보통은 문제난이도를 올리면서 풀이하니 풀이가 어려운느낌을 받는것이 당연합니다. 그걸 조금씩 이겨나가는게 풀이능력을 향상시키는 방법이구요. 힘내서 꾸준히 연습하셔서 원하는 결과 얻기 바랍니다! 파이팅!
감사합니다 문어박사님
@@yeasungkim7760 노력한만큼 좋은 결과 있으시길 바랍니다!
중간 중간 슬럼프가 있었지만 BFS문제도 잘 마무리했습니다! 계속 누적복습하면서 완전히 제것이 될때까지 익히겠습니다. 감사합니다!
기본적으로 알아두어야 할 유형들을 잘 학습하셨으니, 유형 가리지 말고 문제풀이하시면서 BFS문제로 판단되면 BFS로 접근하면서 경험 쌓아가시길..! 실전에서는 유형을 모르고 풀이해야하기때문에 기본 유형을 잘 학습한후에 BFS문제인지 판단하는것도 여러번 해보셔야 합니다! 파이팅 하세요^^
이해가안되다가 이영상보고 바로 이해됐습니다...!
제일 기분좋은 얘기네요^^ 하나씩 학습하시면서 원하는 수준까지 도달하시길 바랍니다!
이해가 쏙쏙 되네요!😮😮
강의 너무 잘보고 있습니다. 해당 코드기반으로 백준에 제출하니 시간초과가 뜨네요.. 혹시 관련해서 개선할 수 있는 방안이 있을까요?
삼성 코테 대비를 기본으로 하다보니 pypy로 제출하고 있습니다. 아마도 가지치기차이나 라이브러리 차이로 보이니, 일단 pypy로 제출하시고, python3로 제출한 정답코드(다른분들이 공개한) 확인해 보시면서 접근방법 차이를 비교해보시길..! (가끔씩 시간차이가 나는 문제들이 있습니다만, 실제 시험에서는 그런 차이에 의한 영향은 없을겁니다)
@@IT-zk3so 감사합니다!!
안녕하세요 선생님! 진짜 선생님 덕에 많이 배우고 있습니다. 다름이 아니라 문제를 마주쳤을때 bfs를 써야할 지 dfs써야할 지 감이 잘 안잡힙니다. 둘 중 하나를 써야겠다는 건 알겠지만 기초가 부족해서 그런지 둘 중에 무엇을 써야할 지 잘 모르겠습니다. 선생님은 어떤 기준으로 판단하시는 지 알려주시면 감사하겠습니다. 항상 좋은 강의 감사합니다!!
dfs/bfs를 학습하고 초반에는 그런 경우가 매우 많습니다. 사실 수업시간이 부족할때는 bfs 한가지만 수업하고 문제풀이 진행해도 대부분 풀이 가능합니다. 기본적으로는 그래프를 완전탐색할때는 두 방법 모두 가능하고, 최단거리를 찾거나, 확산하는데 걸리는 총 기간을 구하거나 할때는 BFS를 사용합니다. DFS/BFS문제들을 더 풀이해보시면 어렵지 않게 구분할 수 있을겁니다!
혹시 토네이도 방향을 룩업테이블이 아닌 회전으로 어떻게 구현하면 좋을까요...감이 안 잡혀서요 ㅠㅠ 문어박사님 덕분에 정말 많이 배웁니다 ...감사합니다!!
다른 풀이들의 회전을 참조해보시고, 백준에서도 소스코드 공개해놓은 분들이 많이 있으니, 그 코드드를 분석해보면서 학습하시기 바랍니다! 다른 코드를 분석하는것도 꽤 좋은 공부가 됩니다!
알린이에게 정말 좋은 테크닉을 알려주셔서 감사합니다 ㅠㅠ
노력한만큼 좋은 결과 있기를 바랍니다! 파이팅!
항상 좋은 강의 감사합니다!
노력한만큼 좋은 결과 있으시길 바랍니다! 파이팅^^
백트레킹 풀고 BFS로 왔네요! BFS를 항상 deque import 해서 풀었는데 선생님처럼 템플릿화하면 실수도 줄고 더 잘 풀 수 있을 것 같네요! 백트레킹 처럼 열심히 풀어보도록하겠습니다.
백트래킹 정복(?)하고 다음 알고리즘 풀이하시나보네요! 하나씩 정복하면서 원하는바 이루시길 바랍니다! 중간에 슬럼프/잘 안풀리는 경우 있더라도 꾸준히 문제풀이 하시면 극복 될겁니다! 파이팅^^
@@IT-zk3so 감사합니다!!
진짜 신기한게 10번까지 풀테는 잘 모르겠다가 11번부터는 눈에 익더니 12번부터는 완전히 이해했습니다! 까먹을때마다 생각하면서 잘 응용해서 공부하겠습니다. 감사합니다!
너무 반가운얘기네요^^ 꾸준히 학습해서 원하는바 이루시기 비랍니다! 파이팅!
막혀서 영상 봤는데 N과 M(2) 에서 j에 +1 안해주는 것 말고는 똑같군요 ㅋㅋ 말 조금만 바꿔도 문제가 달라지는게 진짜 신기하네용.
@@wonwon-h9k 만든 분이 조금씩 바꾸면서 만들어서 그렇네요 ㅎㅎ 하니씩 풀이하시면서 잘 정리하시길 바랍니다^^
3단계 활용 백트레킹 문제 하나씩 풀고 있는데 진짜 진작에 볼걸 그랬네요. 아직 bfs 는 약간 어려워서 남겨두었다가 백트레킹 다 풀면 bfs 문제집도 봐야겠습니다! 감사합니다.
꾸준하게 학습하셔서 목표한부분 이루시길 바랍니다! 파이팅!
벼락치기로 코테 준비했는데 역시나 dfs 문제는 정말 어렵네요 ㅠㅠ 이번 취준때 잘 안된다고 하더라도 포기하지 않고 꾸준히 dfs, 백트레킹 풀어봐야겠습니다. 항상 좋은 영상 감사합니다.
꾸준히 6개월은 준비하셔야하니 마음 편하게 먹으시고 하나씩 정리해나가시기 바랍니다! 노력한민큼 좋은 결과 있기를 바랍니다!
선생님, 저는 다른 방법으로 풀었는데, 왜 이게 틀렸는지 한 번만 봐주시면 정말정말 감사하겠습니다.. 저는 골렘의 번호를 2부터 순차적으로 부여하지 않고, 더 이상 남,동,서로 갈 수 없을 때의 위치를 기준으로 가장 밑 행을 번호로 부여했습니다. 즉, 골렘이 더 이상 이동할 수 없을 때의 중앙이 (6, 7)이면 골렘의 번호를 7로 부여했습니다. 그리고 골렘의 출구를 기준으로 상하좌우로만 한번씩 탐색했습니다. (bfs로 들어가야 할 필요성을 못느꼈습니다.) 골렘의 출구와 인접한 칸이 있으면, 어차피 그 칸도 가장 최대 행을 번호로 갖고 있을거라 생각했습니다. 예를 들어, 골렘의 출구가 (7,7)인데, (7,8)의 값이 8이면 8로 갱신했습니다. max(현재 골렘의 최대 행, 인접한 칸의 최대 행)을 해서 갈 수 있는 최대 행을 갱신했습니다. 이게 가능하다고 생각한 이유는, 어차피 인접한 칸도 다른 칸의 최대 행으로 갱신되어 있다고 생각했기 때문입니다. 근데 이렇게 하면 히든 테스트 케이스에서 틀립니다.. 서론이 길어졌습니다.. 제가 여쭤보고 싶은건 꼭 bfs로 들어가야 하는 이유입니다.. 알려주시면 감사하겠습니다..
이전에는 갈 수 없었지만, 골렘이 채워지면서 나중에는 갈 수 있는 경우가 생길 수 있기때문에 현재 위치 기준으로 갈 수 있는 곳을 뻗어가면서 방문해서 가장 낮은 위치를 찾는것이 확실한 방법입니다. (그리디한 접근으로 이 방법은 반례가 없다라고 생각하고 접근하면 많은 문제들에서 이른바 맞왜틀이 나오게 됩니다) 천천히 따져보시되, 가능한 성공하는 방법으로 접근하는 것이 유리하겠죠
@@IT-zk3so 선생님 정말 감사합니다 ㅠㅠ 제가 문제 예제는 다 맞히고 히든 케이스에서 막혔던거거든요.. 근데 디버깅해봐도 문제 조건대로 흘러가고 답도 제대로 출력되는데 뭐가 문젠지 몰라서 헤맸습니다ㅠㅠ 선생님 답변 정말 감사합니다 ㅜㅜ 제가 예상치 못한 경우까지 고려해서 가급적 bfs로 탐색하겠습니다!!
구현 문제 나중에 풀어야지 나중에 풀어야지 하다가 결국 서류통과는 되었지만 코테에서 계속 떨어져서 다시 마음 붙잡고 공부합니다! 어디 코테든 구현 문제는 무조건 나오는 것 같더라구요 ㅠㅠ 정말 자세히 풀이해주셔서 감사합니다!
@@wonwon-h9k 짧지만 집중해서 풀이해보시고, 당일 긴시간이지만 집중력울 유지한디면 퓰이가능할거라 생각합니다! 남은기간 잘 정리하셔서 좋은결과 있기바랍니다!
시뮬레이션은 정말 하라는대로 하면 되네요..ㅜ 서쪽->남쪽 으로 갈때, '대각선 왼쪽 아래니까 arr[i+1][j-1]의 상하좌우가 비어있으면 가면 되겠네' 라고 생각했는데 순간이동이 아니고, 서쪽도 가고 남쪽도 가니까 모두 비교해야하네요. 풀이영상 정말 감사합니다!!
정말 좋은 경험 하셨습니다! 문제에서 상식을 요구하는것이아니고 요구사항을 따르면서 구현하는것을 체크하는것이니 지금 얻으신 교훈을 코테때도 잘 적용하시기 바랍니다! 좋은 결과 있기 바랍니다^^
안녕하세요 선생님.. 또 왔습니다.. 제가 이 문제를 혼자 스스로 풀었고, 예제도 다 맞혔는데 python3로 제출 시 시간초과가 터집니다.. 근데 pypy로 제출하면 시간초과 안 나고 정답처리 되더라구요..ㅠ 근데 너무 불안해서 선생님께 여쭤보고자 찾아오게 되었습니다.. 시간 여유 있으실 때 시간초과가 날 법한 부분이 어딘지 봐주시면 정말 감사하겠습니다... ----- from collections import deque N, Q = map(int, input().split()) N = 2 ** N board = [[0]*(N+2)]+[[0]+list(map(int, input().split()))+[0] for _ in range(N)]+[[0]*(N+2)] Ls = list(map(int, input().split())) dx = [0, 1, 0, -1] dy = [1, 0, -1, 0] # 공격 for L in Ls: L = 2**L # L단계 # 회전 turn = [[0]*(N+2) for _ in range(N+2)] for si in range(1, N + 1, L): for sj in range(1, N + 1, L): for i in range(L): for j in range(L): turn[si + i][sj + j] = board[si + L - 1 - j][sj + i] board = turn # 얼음 -1 fuze = [x[:] for x in board] for ii in range(1, N + 1): for ij in range(1, N + 1): if board[ii][ij] == 0: continue count = 0 for d in range(4): ni, nj = ii + dx[d], ij + dy[d] if board[ni][nj] == 0: count += 1 if count >= 2: fuze[ii][ij] -= 1 break board = fuze remain_ice = 0 max_size_ice = 0 # 남은 얼음 양 세기 find_ice = [] for i in range(1, N + 1): for j in range(1, N + 1): if board[i][j] != 0: remain_ice += board[i][j] find_ice.append((i, j)) visited = [[False] * (N+2) for _ in range(N+2)] # 가장 큰 얼음 덩어리 찾기 def find_biggest_ice(ii, ij): global max_size_ice dq = deque() dq.append((ii, ij)) visited[ii][ij] = True size = 1 while dq: ci, cj = dq.popleft() for i in range(4): ni, nj = ci + dx[i], cj + dy[i] if board[ni][nj] > 0 and not visited[ni][nj]: visited[ni][nj] = True dq.append((ni, nj)) size += 1 max_size_ice = max(max_size_ice, size) # 가장 큰 얼음 찾기 for i, j in find_ice: find_biggest_ice(i, j) print(remain_ice) print(max_size_ice)
직접 풀이하셨다니 질하셨네요! 삼성은 pypy를 사용하니 그에맞춰 하시면됩니다. 세부 코드를 검토해드릴 환경도 안되고 해드리는 경우도 거의 없으니 이 문제를 더 자세히 리뷰하고싶으시면 부분적으로 수정해보면서 제출시간 체크해보시기바랍니다(그 시간에 다른문제를 더 정리하는게 남은시간대비 효율적일듯합니다)
@@IT-zk3so 선생님 답변 감사합니다!! 오히려 이 코드를 기회 삼아 시간 측정을 해봐야겠네요.. 항상 감사합니다❤️
안녕하세요 선생님 코테 갑자기 1주일만에 준비하고 있는 학생입니다 시간이 많이 없어서 꼭 봐야할 삼성 최신 문제중 5개정도만 알려주실수 있나요?
최신 12개를 다 풀어보시고, 아래 5문제를 먼저 풀어보시길.. 예술성, 술래잡기, 메이즈러너, 왕실의 기사대결, 마법의 숲 탐색
@@IT-zk3so 감사합니다!
27:33
15:38
안녕하세요 선생님..! 정말 저의 한줄기의 빛같은 존재십니다..ㅠㅠ 다름이 아니라 질문이 있어서 댓글 남기게 되었습니다. 제가 시험장에서 도저히 nv=[[x[:] for x in lst] for lst in v] 이 복사 방식을 떠올리지 못할 것 같은데 nv = copy.deepcopy(v) 이 방식으로 복사해서 사용해도 되겠죠??! ㅜㅜ 답변 주시면 정말 감사하겠습니다!
@@ikdaksd 당연히됩니다! 출제자는 딥카피기준으로 시간을 정할거고 아무문제 없이되니 걱정말고 차분히 풀이하시기바랍니다!
while문과 flag를 통해서 그래프 탐색 시뮬레이션 처리해주셨는데, dfs 재귀로 접근해도 괜찮을까요?? 후진할 수 없다면 dfs return 으로 처리해서 종료하도록 했는데요. 답은 맞았는데, dfs return은 바로 break 빠져나가는게 아니고 하나씩 차례대로 스택이 종료되는 것이라서.. 맞게 판단한건지 가늠이 잘 안가네요ㅠㅠ
@@dogbrave설명하신대로 dfs로 처리하는 방법도 좋은 접근입니다! 문제를 풀이하신후 다른 사람듷의 풀이를 몇개 확인하시면 다른 아이디어들을 볼수도팄고, 내 풀이에대한 확신도 얻으실수있습니다! 남은기간 파이팅하세요^^
@@IT-zk3so 항상 감사합니다 덕분에 조금씩 문제가 풀리니 재밌네요!
visited 배열을 main 함수에 선언할 때와 bfs 함수에 선언할 때의 차이가 있나요 ? 어떤 경우에 main 함수에 선언해야하는지 감이 잘 잡히지 않습니다
일반적으로는 둘다 가능하니 편한대로하면됩니다. 다만, 미방문 위치를 체크하면서 메인루프에서 여러번 bfs 함수를 호충하는 경우에는 bfs함수 빆에서 선언해야합니다
@@IT-zk3so 아 ! 이제 이해 되는군요 ㅎㅎ 감사합니다 !!
백준 11501 주식 문제하고 비슷하네요!
안녕하세요 문어박사님! 항상 영상 감사합니다! 질문이 있습니다. 4x4x4=64 총 64개 군집이 아니라 4x4x8=128 군집이 아닌지 궁금합니다..ㅜㅜ
맞네요! 지도의 크기가 4X4 이고 방향이 8방향이니 4x4x8=128 군집이 맞습니다! 문제를 꼼꼼하게 풀이하고 완전히 이해하고 넘어가시니 틀리게 설명한 부분을 잘 정리해주시네요^^ 감사합니다! 최고!
다음 충전소까지 한번의 충전으로는 갈 수 없지만, 미리 여러번 충전을 해놨다면 도착할 경우가 있지 않나요? (그래서 백트래킹 처럼 모든 경우의수를 따져야 하는게 아닌가 라는 생각이었는데, 그리디처럼 풀려서 신기하네요..) 만약, 아래처럼 충전소가 초반에 몰아서 배치되어있고 도착지가 마지막 충전소랑 멀리 떨어져있을 경우 미리 충전을 해놓으면 가능할 것 같아서요! K, N, M = 3, 10, 5 lst = [1,2,3,4,5] -> [0,1,2,3,4,5,10]
K = 3이라는 얘기는 충전하면 3칸을 갈 수 있다는 얘기이기 때문에 5 -> 10을 가는건 불가능한 경우입니다 (문제 설명이 충전하면 K만큼 갈 수 있는것이고, 충전할때마다 +K씩 거리가 누적되는 것은 아닙니다) 백트래킹으로 판단할 수도 있지만 정류장 개수가 최대 100개까지 가능할 수 있기때문에 시간적으로 백트래킹 접근은 제외하고 시도하시는게 좋구요! 백트래킹과 그리디한 접근을 모두 구상해보시고 진행하면 좋을것 같습니다
인덱스를 0 부터 시작하시는 이유가 있나요?? 저는 T가 1 <= 부터 시작하니까 0은 무시하고 N+1 해서 1부터 7까지 진행했고, 7일차에 1일 걸리는 상담이와도 보수는 못받게 풀이가 되는데 어떻게 정답이 된걸까요 저는...
입력을 받으면서 0부터 시작해도 1부터 시작해도 문제를 풀이하는데는 상관없을것으로 보입니다. 큰 이유없이 저장된 자료형을 그리다보니 0부터 입력 받았을거구요.. 1부터 받아서 풀이진행해도 다다르지 않을것으로 보입니다. 다만, 잘 따져봐서 언제까지로 조건을 줄지를 고민해야할것으로 보이구요.. 채점에 사용하는 TC를 모두 통과하면 정답이기 때문에.. 헤당 TC가 없다면 잘못된 풀이도 정답처리가 될 수 있습니다. 제 풀이가 잘못된 부분이 있을수도 있습니다!
아하 그렇군요!! 답변 감사합니다! 항상 강의 잘보고 배우고 있습니다!! 선생님 덕분에 알고리즘 시험 잘봤어요 ㅎㅅㅎ
@@hh33aaaa 아주 반가운 얘기네요^^ 노력한만큼 좋은 결과 있길 비랍니다! 파이팅!
선생님 혹시 파이참에서 디버깅 하실 때 어떠한 식으로 breakpoint를 찍고 해당 결과값을 분석하는 것인지 대략적으로 알려주실 수 있으실까요? 매번 print문으로 디버깅을 하는데, 이게 좀 많이 불편하네요…인터넷에 찾아봐서 해봐도 정확하게 어떠한 식으로 디버깅에서 나온 결과값들을 이해해야 하는 것인지 잘 모르겠어서요. 감사합니다!
질문하신 글 중에 "매번 print문으로 디버깅을 하는데, 이게 좀 많이 불편하네요" 라는 문장이 있는데, 프린트를 하는 그 위치가 바로 디버깅을 할때 브레이크 포인트를 찍는 위치입니다. 그리고 디버거 사용이 가능하지 않은 코테에서나, 디버거 사용가능한 경우도 단계별로 내가 궁금한 값들을 찍어볼때는 프린트 디버깅도 많이 사용하기 때문에 적절히 섞어서 사용하시면 좋을것 같습니다. 사실 디버거 브레이크 포인트를 어디에 찍을지가 고민되신다면 코드를 조금만 더 정리하셔서 중요한 값들이 결정/분기 되는 지점을 찾아보시고 그 곳에 찍어보시면 좋을것 같습니다
안녕하세요 궁금한게 있습니다! 혹시 M에서 받는 lst를 pop으로 넣었을때 첫 번째 예시에서 채워야 하는게 20개가 넘어가면 어떻게 되는걸까요? 저는 처음 풀었을 때 for j in range(5): for i in range(4, -1, -1): if arr[i][j] == 0: arr[i][j] = M_lst[M_cnt % M] M_cnt += 1 이렇게 풀었는데 이 방법이 해석을 잘못한 걸까요?
문제설명을 보시면 "단, 벽면의 숫자는 충분히 많이 적혀 있어 생겨날 조각의 수가 부족한 경우는 없다고 가정해도 좋습니다." 이기 때문에 개수가 부족한 경우는 고려할 필요가 없습니다 (저런 멘트가 없다면, 문제풀이 방법이나 입력이 바뀔수도 있을거구요) 그리고 %M을 하지 않으셔도 부족하지 않기때문에 상관없을거구요
@@IT-zk3so 헉 감사합니다. 문제를 잘 읽어야 겠네요!!!! 좋은 풀이 항상 감사합니다. 정말 많이 도움받고 있습니다!
교수님 양질의 문제풀이 자료들을 올려주셔서 정말 감사합니다. 해당 채널 덕분에 입문자로써 많은 도움을 받고 있습니다
이렇게 댓글로 표현해주시니 뭔가(?) 더 힘이나네요! 노력한민큼 좋은 결과 얻으시길 바랍니다!
이렇게 좋은 강의를 무료로 들으니까 죄송할정도입니다 ㅠ.ㅠ 너무너무 잘듣고 있습니다. 감사합니다!
@@어제연 노력한만큼 좋은결과 얻으시기 바랍니다! 파이팅!
감사합니다 박사님!!
설명중 틀린 내용 댓글로 말씀드립니다! 2:58초쯤 테이블 값이 10이 아닌 9가 맞습니다!
추석인데 영상을 찍으시다니 ...!!!
추석인데 영상에 답글을 달아주시다니 ..!!! 노력한만큼 좋은 결과 있으시길 바랍니다! 파이팅!
와 너무 오랜만이네요 좋은 풀이 감사합니다!
그러게요! 삼성 입사시험이 6개월에 한 번씩 있다보니, 간신히 짬이나는 연휴에 영상 올리게되네요! 예년 신입사원 모집공고와 비교해보면 아마도 4/12 안팎에 24년도 상반기 삼성 역량평가 있을것 같으니, 혹시 시험 준비중이시라면 잘 정리하셔서 좋은 결과 있으시길 바랍니다!
백트래킹은 그동안 한거랑 비슷해서 쉽게 풀었는데, 메모이제이션 풀이방식은 이해가 쉽지 않네요ㅜ 그래도 같은 문제에 대해서 여러가지 효율적인 방식에 대해서도 알려주셔서 감사합니다.😊 여러번 보면서 이해해볼게요
안녕하세요. 좋은 강의 제공해 주셔서 감사합니다:) 한가지 질문이 있습니다. dp[2]과 dp[3]를 계산해보면, 연속하는것 보다 10 하나만 선택하는게 최대값인것 같은데 dp[2] = dp[3] = 10이 되어야하는거 아닌가요?
질문한 내용이 맞습니다! 이전에 다른분도 말씀해주셨는데, 맞다고 답글만 달고 영상을 다시 녹화하기가 쉽지 않네요^^ 틀린내용 정정 답글 올려주셔서 감사합니다! 노력한 만큼 좋은 결과 있으시길 바랍니다!
DP가 너무 어려워서 문제 풀기가 겁났는데 이 강의에서 너무 해설도 잘해주시고 손코딩까지 하시면서 친절하게 알려주셔서 전부 이해가 잘되었고 DP에 대한 감이 잡히는거같아요 정말 감사합니다
@@김준서-h1o 감이 잡힌다는 댓글이 제일 반갑네요^^ 노력한만큼 좋은 결과 있기를 바랍니다! 파이팅!
안녕하세요 박사님. 박사님 덕분에 코테 실력이 많이 늘어난 학생입니다. 강의들을 보고 다시 풀면서 삼성을 준비하고 있습니다. 질문이 하나 있는데요. def pick(now, n, b, current): global answer, visited if current > answer: return if current >= b: answer = min(answer, current) return for i in range(now, n): if visited[i]: continue visited[i] = True pick(i, n, b, current+heights[i]) visited[i] = False if __name__ == "__main__": global answer, visited T = int(input()) for tc in range(1, T+1): n, b = map(int, input().split()) visited = [False for _ in range(n)] heights = list(map(int, input().split())) answer = sum(heights) pick(0, n, b, 0) print(f"#{tc} {answer-b}") 이렇게 코드를 짯을 때 강의안과 시간복잡도는 똑같을까요? 둘 다 O(2^n)이라 생각되는데 코드 스타일 차이만 있을지 궁금합니다! 감사합니다~
제가 설명드린 코드는 부분집합(선택하는 경우, 선택하지 않는경우)으로 풀이한것이라면, 위코드는 조합으로 풀이하신 경우입니다. 복잡도가 같지는 않구요, 작동하는 코드이지만 종료조건이 명확하지 않기 때문에(예를 들어 조합으로 풀이하는 경우는 N개에서 k개를 선택하는 경우처럼 k개를 선택하면 종료되는 경우에 많이 사용합니다) 위의 문제는 부분집합형태로 접근하시는것이 맞습니다. 만약 k개로 정해진 경우에는 위의 코드처럼 작성하시는것이 더 효율적일수있구요. 다른 백트래킹 문제들 풀어보시면서 적어도 순열, 조합, 부분집합으로 풀이하는 세가지 경우는 정리해보시기 바랍니다(제 백트래킹 풀이에도 세가지 방법이 있으니 차분히 풀이하면서 정리하시길.. 뒤의 백준문제집까지 포함 )
그리고 삼성코테를 준비한다면 백트래킹도 일부 살펴봐야하겠지만, 주력을 시뮬레이션 중심으로 준비하시는것이 가성비 있는 전략입니다
감사합니다,, 참고로 저번 삼성리서치 코테를 박사님 덕분에 뚫어서 주변에 거의 매일 추천드리고 있습니다! 질 좋은 강의 만들어주셔서 감사합니다 🤗
@@roodduck 지난번에도 댓글로 합격소식 올려주셔서 그날 하루종일 기분좋게 보낼수있었는데, 명절에도 좋은 답글 올려주셨네요! 입사해서 즐겁게 연구하시고 꽃길만 걸으시기 바랍니다!
안녕하세요 문어박사님 영상 항상 잘 보고 있습니다. 혹시 24년도 상반기 문제도 업로드 예정일까요?
2주내로 업로드 예정입니다, 코드트리문제는 코드트리에 정답과 해설이 있으니 그걸 참조하시는것도 좋은 방법입니다^^
@@IT-zk3so 감사합니다 박사님!! 박사님 풀이도 궁금해서 조용히 기다려보겠습니다 ㅎㅎ
정말 잘 보고 갑니다. 그런데 문제 조건 중에 모두 익었을 경우 0을 리턴하는데 소스 어디를 봐도 모두 익었을 때 처리가 없는데, bfs를 돌아도 v[ch][ci][cj]-1 로 리턴하는 부분이 0이 되기 때문인가보네요?
@@JongOChoi 맞습니다! 모두익어있다면 처음부터 ,bfs를 안돌려도되고 돌린다면 말씀하신것처럼 0이 나오게됩니다