묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
섹션3 브루트포스 알고리즘 1342 풀이1 질문
섹션3 브루트포스 알고리즘 1342 문제 풀이 강의에서풀이1 질문이 있습니다.for i in range(ord('a'), ord('z') + 1) : ans //= fact(S.count(chr(i))) 이렇게 fact로 나눠주라고 하셨는데,왜 나눠주는 지 이해가 잘 안됩니다.같은 문자가 있을 때 나눠주는 건 알고있습니다.근데 그건 경우의 수를 구할 때고, 이건 인접한 문자가 같은 지 아닌 지를 구하는 건데왜 나눠줘야 하나요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-K 코드 질문있습니다
안녕하십니까 큰돌님.3-K 질문들을 보니 대부분 시간 초과가 나는데 저 역시도 마찬가지입니다.얼음 녹이기 -> 백조 이동 -> 백조끼리 만나면 종료.위 같이 로직을 생각했습니다. 강의 보기 전에 작성했던 건데http://boj.kr/94d4853fa89a44a7afbde319de126610제 코드에서 불필요한 로직이 있는 건 확실한데 어딘지 정확하게는 모르겠는데 피드백 주시면 감사합니다.melting() 함수에서 얼음을 녹인 지점을 wTmp 에 저장하고,go() 함수 이후에 백조끼리 만나지 못했다면wList=wTmp 를 통해 녹인 지점부터 반복을 하게 만들었습니다. "재귀적으로 영역을 탐색하는 거나 queue 등을 이용해 단계적으로 탐색해가는 것 이 2가지 모두 플러드필" 이라고 큰돌님 답변을 봤는데, 저도 플러드필을 사용한 건가요 ?? 모든 문제에서 그런 것은 아니지만 이 문제에서만큼은 dfs는 원하는 지점에 가기까지 불필요한 방문을 많이해서 bfs가 더 효율적이다 라고 받아들이면 되는 것이죠 ??
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-A map<int, vector<vector<int>>> + sort() 대신 priority_queue
안녕하세요. 선생님!최소 비용 + 사전순 정렬을 map<int, vector<vector<int>>> 을 이용하는 대신에 첫번째 원소를 비용으로 설정한 priority_queue 를 이용하고자 하는데, 이 자료구조를 이용해도 효율적이라고 볼 수 있을까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
85page 오탈자
(85 page)제대로 깊은 복사가 되어 ret을 수정하더라도 vector v->array v는 수정되지 않는 것을 볼 수 있습니다.😉
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-D 반례
정확히 선생님이 알려주신 반례를 고려하지 못해서 계속 틀렸었네요. 이 반례를 생각못해서 30분 정도 헤매다가 강의를 듣고 알았습니다..이런 반례를 잘 생각해낼 수 있는 팁이 있을까요?? 참고틀린코드https://www.acmicpc.net/source/share/0041d7ec240f4070b3803327cefdc672맞은 코드 (불 방문 배열 0 체크)https://www.acmicpc.net/source/share/7aaf0dee6f534ea6b896145d17a81a14
-
해결됨자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
문제 수정이 안 된 것 같습니다.
https://www.inflearn.com/courses/lecture?courseId=326750&unitId=72712&tab=QnA&category=questionDetail&q=672478 다른 분이 글을 올리시긴 했는데 입력이 "문제에 첫 줄에 길이 100을 넘지 않는 공백이 없는 문자열이 주어집니다."라고 적혀 있지만 예시 입력에도 공백이 있고, next()를 사용하면 틀리는 걸 보니 공백이 있는 문자열로 수정되어야 할 것 같습니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-A 미로탐색 문제 초기 설정값을 100 이 아닌 104로 하는 이유?
선생님 안녕하세요!2-a 의 입력 조건이 다음과 같은데 , 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다.const int max_n = 104; 라고 100 대신 설정하는지 이유가 궁금합니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-E 강의 질문 드립니다.
안녕하세요, 선생님. 4-E(#14890 경사로) 문제의 경우, 해설 영상과 해설코드를 보면 별도의 비트마스킹 연산은 다루지 않는 것 같은데,비트마스킹 없이 풀어도 괜찮은 문제라고 이해해도 될까요? 감사합니다.
-
미해결해외 빅테크 코딩 인터뷰: LeetCode 포기자의 합격 공부법
이해하기 어려운 문제 시간 투자
어려운 알고리즘 문제의 경우 이해가 안되는 경우가 있는데요!이런 경우에 다시 2-3번으로 돌아가 내가 뭘 이해못했는지 고민하는 부분에서 시간투자를 어느정도 하셨나요~? 때로는 문제 난이도가 높아서 정말 잘 이해가 안될때도 있을 것 같은데, 이런 경우에 시간투자를 몇시간까지만 하고 그래도 이해가 안되면 강의에서 언급한 것 처럼 psudo code 자체 흐름을 외워버리고 넘어가셨을까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
[긴급] 다익스트라 영상강의 문제
영상 강의 중간에 그림을 작성하는 부분으로 넘어갈 때마다 소리는 정상적으로 나오지만 영상이 뚝뚝 끊기는 현상이 발생합니다. 설명에서 가장 중요한 시각 자료를 작성하시는 부분에서 발생하는 현상이라 빠른 수정 부탁드립니다.구간: 1분19초~ 1분 24초, 2분 30초 ~ 3분
-
미해결해외 빅테크 코딩 인터뷰: LeetCode 포기자의 합격 공부법
선수지식 관련 질문.
안녕하세요 강사님 우선 좋은 강의 만들어주셔서 감사합니다.저처럼 해외취업을 하고싶지만 코테 포기자한테 희망이 될 수 있는 강의인것 같습니다.자료구조, 알고리즘, 시간, 공간 복잡도는 알고리즘 문제를 푸는데 필수적이라고 하셨지만 모르는 상태로 시작하고 문제를 풀면서 채워나가면 된다고 하셨는데요. 이때 각 항목별로 어느정도 알고 있어야 하는지 감이 오지 않습니다. 좋아하는 프로그래밍 언어로 자료구조를 구현할 수 있는 상태에서 시작해야하는 건지 후반부 강의에서 보여주신 데모 방식대로 자료구조나 알고리즘도 그때그때 chatgpt한테 물어보면서 풀어가면 되는건지 궁금합니다. 강사님은 이 방법론으로 문제 풀이를 하실 때 어느정도 사전지식들을 따로 공부하고 시작하신건가요? 혹은 사전 지식들도 Gpt한테 물어봐가면서 다시 학습하신건가요?
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
이해가 되질 않습니다. 선생님이 작성해주신 코드로 제출했는데 오답처리됩니다. ( 배열 11.임시반장정하기)
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. package DJ_LEE.Array; import java.util.Scanner; public class Main10 { public int solutionOfLecture(int[][] arr, int num) { int answer =0; int min = 0; for (int i=1; i<= num; i++) { int cnt = 0; for (int j = 1; j <= num; j++) { for (int k = 1; k <= 5; k++) { if (arr[i][k] == arr[j][k]) { cnt++; break; } } } if(cnt>min){ min=cnt; answer=i; } } return answer; } public static void main(String[] args) { Main10 T = new Main10(); Scanner kb = new Scanner(System.in); int num = kb.nextInt(); int[][] arr = new int[num+1][6]; for( int i=1; i<=num; i++){ for(int j =1; j<=num; j++){ int el = kb.nextInt(); arr[i][j]=el; } } System.out.println(T.solutionOfLecture(arr,num)); } }
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-I 로직 질문있습니다
안녕하십니까 큰돌님 !강사님 코드의 로직이수빈이가 해당 정점에 3초에 오고 동생이 5초에 와도 종료된다. 인데궁금한게 있습니다.동생이 더 빨리 오고 수빈이가 늦게 오는 상황이 생길 수 있는 거 같은데(동생이 3초에 오고 수빈이가 5초에 온다)만약에 위의 상황이 가능해도 저때는 continue만 될 뿐이지, 로직을 종료하는 if문에는 걸리지 않아서 종료가 안 되는게 맞는 거죠 ??
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
6-J 질문드립니다.
https://www.acmicpc.net/source/share/d3badefb105540ecba6f33175becc56c해당 코드에서 hi = 1e12로 바꾸니 정답처리가 됩니다.그리고 큰돌님 코드에서 max_n을 대략 1e17로 바꾸니 오답이 되는 것을 확인했습니다. 왜 크기가 더 커진다해서 오답이 되는지 궁금합니다.
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
boj 3020
안녕하세요 ! 수강전 문제를 풀어보았는데풀었던 방법이 attributeError 런타임에러가 나왔습니다. 하기 방법에 매몰이 되어서 강의에 집중이 안되어서 이렇게 질문하게 되었습니다 ㅠㅠ 이렇게 풀면 메모리나 시간초과가 날까요? 그리고 어디가 틀려서 런타임에러가 나는지 알수있을까요?import sys # sys.stdin = open('./input.txt', 'r') input = sys.stdin.readlines().strip() from collections import defaultdict W, H = map(int, input().split()) lit = [int(input()) for _ in range(W)] # print(lit) # dict_ = defaultdict() ans = defaultdict() points = [] for y, v in enumerate(lit): if y % 2 == 0: for x in range(H-v, H): points.append((x, y)) else: for x in range(v): points.append((x, y)) for x, z in points: if x in ans.keys(): ans[x] += 1 else: ans[x] = 1 # print(ans) low_cnt = sorted(ans.values())[0] cnt = 0 for k, a in ans.items(): if a == low_cnt: cnt += 1 print(f'{low_cnt} {cnt}')
-
미해결자바 코딩테스트 - it 대기업 유제
가장 많이 사용된 회의실
안녕하세요 강사님 강의 잘 듣고 있습니다 강사님 코드를 보면서 드는 의문이 굳이while문이 필요한 가 입니다.while문에 없어도 어쩌피 if else로직만으로도 잘 답을 가져오는 거 같아서요 혹시 예외 케이스가 있나요? ```javapackage org.youyk.inflearn.latest.sec03.Problem6; import java.util.*; class Solution7 { public int solution(int n, int[][] meetings){ int answer = 0; int[] rest = new int[n]; // 끝나는 시간, 순번 PriorityQueue<int[]> rooms = new PriorityQueue<>((a,b)->a[0] == b[0] ? a[1]-b[1] : a[0] - b[0]); TreeSet<Integer> roomSet = new TreeSet<>(); for(int i=0;i<n;i++){ roomSet.add(i); } Arrays.sort(meetings,(a,b)->a[0] - b[0]); for(int[] m : meetings){ if(!roomSet.isEmpty()){ int r = roomSet.pollFirst(); rest[r]++; rooms.add(new int[]{m[1],r}); }else{ int[] poll= rooms.poll(); rest[poll[1]]++; rooms.add(new int[]{poll[0] + (m[1] - m[0]), poll[1]}); } } int max=0; for(int i=0;i<n;i++){ if(max<rest[i]){ max = rest[i]; answer = i; } } return answer; } public static void main(String[] args){ Solution7 T = new Solution7(); System.out.println(T.solution(2, new int[][]{{0, 5}, {2, 7}, {4, 5}, {7, 10}, {9, 12}})); System.out.println(T.solution(3, new int[][]{{3, 9}, {1, 10}, {5, 8}, {10, 15}, {9, 14}, {12, 14}, {15, 20}})); System.out.println(T.solution(3, new int[][]{{1, 30}, {2, 15}, {3, 10}, {4, 12}, {6, 10}})); System.out.println(T.solution(4, new int[][]{{3, 20}, {1, 25}, {5, 8}, {10, 15}, {9, 14}, {12, 14}, {15, 20}})); System.out.println(T.solution(2, new int[][]{ {0, 5}, {1, 2}, {2, 3}, {3, 6}, {6, 8} })); } }```
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-G 숨바꼭질 2 코드 질문있습니다.
안녕하십니까 큰돌님강의에서 수빈이랑 동생이랑 위치가 같을 때의 반례를 설명해주시면서if 문이 없으면 틀렸다고 할 거라고 했는데http://boj.kr/590703c7959a401f986529dd681c4972복습하면서 모르고 없이 그냥 제출했는데 통과를 해서 질문드립니다.
-
해결됨자바 코딩테스트 - it 대기업 유제
심사위원 문제 시간복잡도 질문
안녕하세요. sorting 파트의 문제 4번 심사위원 문제의 시간복잡도 질문입니다.정답 코드에서 score를 순회하며 getAve 함수를 호출하면서 이중 for문이 실행됩니다.score의 최대 길이가 30만이고, k가 최대 10만이므로 시간 복잡도는 O(nk)입니다.최악의 경우 30만 × 10만 = 300억 번 연산이 발생하는데, 이는 1~2초의 제한 시간 내에 절대 수행될 수 없으므로 시간 초과가 발생하는 코드가 맞나요?또한 제 풀이도 평가 부탁드립니다. 누적합 배열을 사용해서 풀어봤습니다. 이러면 시간복잡도가 O(nlogn)이 나와서, 최악의 경우라도 O(90만)이라고 계산했는데, 맞을까요?import java.util.*; class Solution { public int solution(int[] score, int k){ int answer = 0, n = score.length; Arrays.sort(score); //pre: 누적합 배열 int[] pre = new int[n]; pre[0] = score[0]; //누적합 구하기 for(int i = 1; i < n; i++){ pre[i] = pre[i-1] + score[i]; } //score 순회하면서, 조건 만족하면 누적합 배열로 평균 구하기 for(int i = 0; i <= n - k; i++){ if(score[i + k - 1] - score[i] <= 10){ int tmp; if(i == 0){ tmp = pre[i + k - 1]; }else{ tmp = pre[i + k - 1] - pre[i - 1]; } tmp /= k; //평균 answer = tmp; break; } } return answer; } public static void main(String[] args){ Solution T = new Solution(); System.out.println(T.solution(new int[]{99, 97, 80, 91, 85, 95, 92}, 3)); System.out.println(T.solution(new int[]{92, 90, 77, 91, 70, 83, 89, 76, 95, 92}, 4)); System.out.println(T.solution(new int[]{77, 88, 78, 80, 78, 99, 98, 92, 93, 89}, 5)); System.out.println(T.solution(new int[]{88, 99, 91, 89, 90, 72, 75, 94, 95, 100}, 5)); } }
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-H 질문드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하십니까 선생님,(4-H) 2234번 문제 질문 있습니다.http://boj.kr/e30d396988b2404490d6b22e0cc9a50d어느 부분을 놓쳐서 틀렸는지 찾으려 많이 시도를 해봤는데 결국 해결하지 못했습니다... 도움 부탁드립니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
공부 방법에 대해 여쭤보고 싶습니다.
강의 시청전에 문제를 풀어보고서 시청하는게 좋다고 하셔서요. 근데 만약 문제를 풀때 감조차 안올땐 어떻게 해야할까요..ㅠㅠ 그럴땐 그냥 시청하고서 여러번 풀어보는게 좋을까요?