묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결코딩테스트 [ ALL IN ONE ]
디스코드 초대장이 올바르지 않다고 뜹니다
안녕하세요! 코딩테스트 All In One 강의 수강중인 취준생입니다.다름이 아니라, 디스코드 채널에 합류하기 위해 다른 글의 초대장 링크를 눌러봤지만, 올바르지 않은 초대장이라고 뜹니다ㅜㅜ혹시 새로운 디스코드 초대 링크를 받을 수 있을까요??
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-H 2559번 질문있습니다!
안녕하세요 선생님 😃 누적합 관련해서 질문있습니다. 아래 글은 이전에 누적합 관련해서 이러한 로직을 사용하는 것은 어떤지 질문을 드렸던 글입니다.https://www.inflearn.com/questions/1233619/1%EC%A3%BC%EC%B0%A8-%EA%B0%9C%EB%85%90-9-%EB%88%84%EC%A0%81%ED%95%A9-%EC%A7%88%EB%AC%B8%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4 위의 로직을 사용해서도 문제를 풀어봤는데요, 테스트 케이스에서는 정답이었지만, 백준에 제출했을 때는 오답처리가 되어 무엇이 잘못된 것인지 잘 모르겠어서 질문드립니다. http://boj.kr/e912454a40e7424d98eccf86d7506db2
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-G 9996번 재질문입니다!
안녕하세요 선생님 :) 선생님께서 푸신 풀이에서 하나를 입력하면 그에 대한 출력이 바로 나오는 것이 마음에 들지 않아서 모든 입력을 넣어야 출력이 나오도록 코드를 변경해보려고 했습니다. vector 컨테이너를 사용해서 입력된 문자열들을 컨테이너에 담고, 인덱스에 알맞는 문자열을 꺼내와서 DA인지 NE인지 출력해보려고 했는데요, 자꾸 vector out of range 에러가 나옵니다. 왜 범위를 벗어난건지 모르겠어서 질문드립니다 ㅠㅠ http://boj.kr/bc2da3a3773c401086b47cf818e8c0f1
-
미해결코딩테스트 실전 모의고사(with C++) : 대기업 대비
숲속의 기사
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 예제는 통과해서 제출하니까 시간초과라고 뜨는데, 잘못 작성한건 가요??import java.io.*; import java.util.*; public class Main { public static void main(String[] argvs) { Scanner sc = new Scanner(System.in); int[] dx = {0,0,1,-1}; int[] dy = {1,-1,0,0}; Queue<int[]> q = new LinkedList<>(); int n=sc.nextInt(); int m=sc.nextInt(); int[][] map = new int[m][n]; for(int i=0; i<m; i++) { for(int j=0; j<n; j++) { map[i][j]=sc.nextInt(); } } boolean[][] visit = new boolean[m][n]; int[][] dist = new int[m][n]; for(int i=0; i<m; i++) { for(int j=0; j<n; j++) { if(map[i][j]==2 || map[i][j]==3) { q.add(new int[] {i,j}); int L=0; visit = new boolean[m][n]; visit[i][j]=true; while(!q.isEmpty()) { int len = q.size(); L++; for(int k=0; k<len; k++) { int[] tmp = q.poll(); for(int z =0; z<4; z++) { int nx = tmp[0]+dx[z]; int ny = tmp[1]+dy[z]; if(nx>=0 && ny>=0&& nx<m && ny<n && map[nx][ny]!=1) { if(!visit[nx][ny]) { visit[nx][ny]=true; dist[nx][ny]+=L; q.add(new int[] {nx,ny}); } } } } } } } } int answer=Integer.MAX_VALUE; for(int i=0; i<m; i++) { for(int j=0; j<n; j++) { if(map[i][j]==4 && dist[i][j]>0) { answer = Math.min(answer, dist[i][j]); } } } System.out.print(answer); } }
-
미해결코딩테스트 실전 모의고사(with C++) : 대기업 대비
멀티태스킹 질문드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.자바로 작성해서 예제는 맞게 나오는데, 제출하니까 틀렸다고 나옵니다. 어디가 잘못 된걸까요??import java.io.*; import java.util.*; public class Main { public static void main(String[] argvs) { Scanner sc = new Scanner(System.in); int n=sc.nextInt(); int[] num = new int[n+1]; int[] st = new int[n+1]; for(int i=1; i<=n; i++)num[i]=sc.nextInt(); int k=sc.nextInt(); for(int i=1; i<=n; i++) st[i] = num[i]; Arrays.sort(st); int rest=num.length; //처리해야 할 작업 개수 for(int i=1; i<st.length; i++) { long time=((long) rest * (st[i] - st[i-1])); //몇번의 회전에 해당 작업이 끝나는가 if(time>k) { long idx= k%rest; //어디서 멈춰야하는지 구하는 변수 int cnt=0; for(int j=0; j<num.length; j++) { if(num[j]>=st[i]) { if(cnt==idx) { System.out.print(j); System.exit(0); } cnt++; } } } else { k-=time; rest--; } } System.out.print(-1); } }
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-H 질문있습니다.
선생님과 비슷하게는 풀었는데 70%쯤 가서 오답이라고 뜹니다.어디가 틀린건지 도저히 모르겠습니다https://www.acmicpc.net/source/77016787
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
2강 20:28초에서 설명하고 있는 최적화 방법에 관하여
강사님! 20 팩토리얼에 2가 몇 번 곱해져있는지 설명해주시는 부분에서 질문이 있습니다. 마지막에 20을 2의 제곱수로 나눴을 때 몫의 정수 부분 합이 2가 몇 번 곱해져 있는지 나타내는 수라고 알려주셨는데요. 이게 어떤 원리인지 궁금합니다. 그러니까 수학적으로 왜 이렇게 같을 수 있는지 알고싶어요!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
8주차 개념강의 영화수집 질문드립니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.선생님 안녕하세요 우선http://boj.kr/e25eb9ed4cf34c26bf2c12eff66b4e22강의를 들으면서 나름대로 짜봤더니 시간초과가 나는데 선생님의 코드로 main 부분을 바꾸면 시간초과가 안나는 이유가 궁금합니다! 부족한 지식에 해답을 주시면 감사하겠습니다 ㅠㅠ
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
11653번 (2강 최적화) 질문이있습니다.
아래와 같이 완전탐색(?)을 이용해 작성하였는데요, 말씀하신 최적화 방법(약수를 구할때는 해당 수의 제곱근까지만 구해도 약수의 개수와 약수를 구할 수 있다)으로 어떻게 코드를 최적화 할 수 있을지 잘 모르겠습니다. let input = readLine().map { Int($0)! }! var answer: [Int] = [] var previous = input func check(i: Int, divided: Int) -> Bool { if divided % i == .zero { answer.append(i) previous = divided / i return true } else { return false } } if input == 1 { } else { for i in 2...(input) { var flag = true repeat { let check = check(i: i, divided: previous) flag = check } while flag } answer.compactMap { print(String($0)) } }
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
아나그램 사이즈 관련 질문입니다.
만약 아나그램 b 가 bbb 라면?해쉬맵의 사이즈가 0이 되서 아나그램 비교자체가 안되지 않을까라는.. 의문이 들어서 질문드립니다 ~
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-A 질문있습니다!
큰돌님 코드중에 int& ret = dp[here][visited]; if(ret != -1) return ret;이 부분이 결국 메모이제이션으로 해석되었는데요. 강의중 {a,b,c} -> d 로 가려고 할때{a,b,c}의 순서는 상관없다고 말씀해주신게ret = min(ret, tst(i, visited | (1<<i)) + dist[here][i])이 부분을 거치면서 {a,b,c} -> d로 가기 전 이미 최소 경로로 갱신된 상태이기 때문인가요? 즉, 실제로 a->b->c->d와 b->c->a->d의 경로비용은 다르지만 위의 코드로 인해서 이미 최소비용 경로로 {a,b,c} 가 끝난 상황. 이라고 해석하면 될까요?
-
미해결코딩테스트 실전 모의고사(with C++) : 대기업 대비
숨겨진 합 자바 질문드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.문자를 a로 치환하고 숫자만 뽑으려고 하는데 a의 개수가 달라서 에러가 뜹니다. 방법이 없을까요?? import java.io.*; import java.util.*; public class Main { public static void main(String[] argvs) { Scanner sc = new Scanner(System.in); String s=sc.next(); String str = s.replaceAll("[^0-9]","a"); //a로 치환 int answer= 0; System.out.print(str); } }
-
미해결코딩테스트 실전 모의고사(with C++) : 대기업 대비
영화관람 시간초과 질문드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 자바로 작성하니까 시간초과가 나는데, 상관없는 건가요??import java.io.*; import java.util.*; public class Main { public static void main(String[] argvs) { Scanner sc = new Scanner(System.in); int n=sc.nextInt(); int[] num = new int[n+1]; for(int i=1; i<=n; i++) { num[i] = sc.nextInt(); } Stack<Integer> st = new Stack<>(); int[] answer = new int[n+1]; for(int i=n; i>=1; i--) { //제일 뒤에서 부터 스택에 넣는다.(스택에 넣는 것은 [[인덱스 번호]]를 넣는다) while(!st.isEmpty() && num[i]>num[st.peek()]) { //num배열에서 인덱스 번호에 해당하는 것을 본다. 현재 배열의 값이 스택의 top부분보다 크면 pop한다. 다시말해 스택 안은 오름차순 정렬된다. answer[st.peek()] = i; //정답 배열에 인덱스 값 넣기, st.peek도 인덱스, i도 인덱스 번호 st.pop(); } st.push(i); //스택에 삽입 } for(int i=1; i<=n; i++) { //답 출력 System.out.print(answer[i]+" "); } } }
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
입력받는 부분에서 질문이있습니다
큰돌님의 풀이에서 value와 합연산을 하는 부분이 이해가 잘 안되어서 조금 고민을 해봤는데 결국 idx번째 비트 켜기와 같다고 생각했습니다.비트마스킹 강의에서 idx번째 비트 켜기를void idx번째비트켜기() { int S = 18; int idx = 0; S |= (1 << idx); cout << S << '\n'; }이렇게 알려주셨는데요.이를 사용해서 아래와 같이 입력을 받아도 무방한가요? 출력해봤을 땐 똑같이 나오는데 풀이를 value를 써서 하신 이유가 따로 있는지 궁금해서 질문남깁니다.for (int i = 1; i < n + 1; i++) { cin >> s; for (int j = 0; j < s.size(); j++){ if (s[j] == 'T') a[i] |= (1 << j); } cout << a[i] << '\n'; }
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
연결리스트의 삽입 및 삭제
대학교에서 자료구조를 배우고 있는 학생입니다!연결리스트의 삽입 및 삭제 시간 복잡도 관련해서 질문이 있습니다.Q. 왜 연결리스트의 삽입과 삭제는 O(1)인가요? 라는 내용에서왜 이미 노드에 접근했다고 상정하고 시간복잡도를 계산하는지 이해가 가지 않습니다. 제 이해로는 노드에 접근하는 과정까지 시간복잡도 계산에 포함시켜야 한다고 생각하는데 자세한 설명을 듣고싶습니다!
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-D 질문
안녕하세요 큰돌 님.7-D를 풀던 도중 메모이제이션 부분에서 질문드립니다.저는 메모이제이션을 2차원 배열로 하고자 했는데요,제가 생각하기에 나무가 2개뿐이기에 이동 횟수에 따라 나무의 위치를 특정할 수 있기 때문에"1번 움직이면 -> 2번 나무, 2번 움직이면 -> 1번 나무"와 같이 이동 횟수와 나머지 연산을 통해 '현재 위치'를 메모이제이션 하지 않아도 된다는 생각이 들었습니다.때문에 이동 횟수와 현재 시간만 메모이제이션 하고자 했습니다. 혹시 이런 식의 접근으로는 풀 수가 없는 것일까요?제가 제출한 코드도 첨부 드립니다.http://boj.kr/7d0a67eaf7b8428e912f596c29a971f1
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
정답인것 같은데 어떤가요?
function solution([n, m], arr) { let answer = Number.MIN_SAFE_INTEGER; function DFS(L, sumScore, sumTime) { if (sumTime > m) return; if (L === n) { answer = Math.max(answer, sumScore); } else { DFS(L + 1, sumScore + arr[L][0], sumTime + arr[L][1]); DFS(L + 1, sumScore, sumTime); } } DFS(0, 0, 0); return answer; } console.log( solution( [5, 20], [ [10, 5], [25, 12], [15, 8], [6, 3], [7, 4], ] ) ); 강사님이 시키는대로 종이에 그려 가보고 그다음 다시 직접 문제를 풀어보는 연습을 하니까 같은 유형의 문제를 이제 직접 풀 수 있게 되었어요.
-
해결됨독하게 C를 배운 사람을 위한 선형 자료구조
자료 자체와 정렬된 인덱스 분리 강의에서 질문
강의 9분에 등장하는 MakeIndexAge 함수에 관한 질문입니다.MakeIndexAge 함수가 원래 자료구조의 손상을 가하지 않기위해노드들의 주소들을 담은 배열을 만들고 정렬한 후, 반환하는 함수라는 것은 알고있습니다.그런데 MakeIndexAge 함수의 반환형이 왜 USERDATA**가 아니라 void**인지 이해가 가질 않습니다.USERDATA**로 반환형을 잡으면 안되나요?
-
해결됨[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편
[바닥장식][런타임에러] 질문 있습니다.
강사님이 작성해주신 코드로 실행을 해봤을때 런타임 에러가 발생합니다. 제가 코드를 잘못 작성한 걸까요?import sys sys.setrecursionlimit(10**6) inpurt = sys.stdin.readline def dfs(y, x): global map_ cur = map_[y][x] map_[y][x] = "" if cur == "-" and map_[y][x + 1] == "-": dfs(y, x + 1) elif cur == "|" and map_[y + 1][x] == "|": dfs(y + 1, x) # 1. initialize N, M = map(int, input().split()) MAX = 50 + 10 # N * M map_ = [["" * MAX] for _ in range(MAX)] # 2. connection info for i in range(1, N + 1): row = input() for j in range(1, M + 1): map_[i][j] = row[j - 1] # 3. dfs answer = 0 for i in range(1, N + 1): for j in range(1, M + 1): if map_[i][j] != "": dfs(i, j) answer += 1 # 4. print print(answer)코드에 오타가 있는 것 같습니다 map -> map_
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-G 질문있습니다!
안녕하세요 선생님! 강의 보기 전에 직접 풀어봤는데요, 테스트 케이스도 정답대로 잘나오지만 백준에서는 틀렸다고 나옵니다 ㅠㅠ 파일 개수 입력패턴 입력파일 입력패턴의 첫 번째/마지막 문자와 파일의 첫 번째/마지막 문자가 같다면 DA출력, 아니면 NE출력몇 번을 확인해봐도 설계에 문제는 없어보이는데요, 어디가 틀려서 오답처리가 되는걸까요? http://boj.kr/8b7b4a2668c0446a92b0c459e4c67c77 #include <iostream>using namespace std;int cnt;string pattern;string input[100];int main(){cin >> cnt;cin >> pattern;for (int i = 0; i < cnt; i++)cin >> input[i];for (int i = 0; i < cnt; i++){if (pattern[0] == input[i][0] && pattern[pattern.size() - 1] == input[i][input[i].size() - 1])cout << "DA" << endl;elsecout << "NE" << endl;}return 0;}