묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
8-C 반례 질문
안녕하세요 강사님 ㅎㅎhttp://boj.kr/56d99e00ded14c1cacbefe3eb07f6db6위 링크는 강사님의 코드이고 저는 위 코드로 나오는 결과가 통과는 되지만 반례가 있는 것 같아 질문드립니다.해당 문제 게시판에도 저와 비슷하게 생각하신 분의 데이터 추가 요청 글이 있어 첨부하겠습니다.https://www.acmicpc.net/board/view/118371저의 추가 반례입니다.11 2 2 21 59 12제가 생각하는 답 : 11결과 : 71 ~ 11까지 욱제와 영선이의 친구들을 제외한 인원 즉 파티에 초대된 사람들만 세었을 때 합이 T 이상이 되는 경우가 없으니 영선이의 친구들은 나갈 필요가 없습니다.따라서 초반에 바로 영선이의 친구1을 투입시키고 시간 5에 한명이 나갈 때 영선이의 친구 2를 투입시킵니다.그 이후로 시간 11까지 영선이의 친구들이 나갈 필요가 없습니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
맞왜틀 문의드립니다!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. http://boj.kr/c650b428f52f433c841f35d391fe7a7c 시간을 합치지 않고 pair를 사용해서 코드를 짜느라 좀 길어졌습니다...어떤 예외가 있는지 알 수 있을까요ㅠㅠ
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
DFS 종화문제 dfs함수 질문입니다.
종화님 문제의 void dfs() 함수가 이전에 배운 방향탐색에서 배운 go() 함수와 같은 것 같은데 그럼 go()함수도 dfs 인건가요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-L 질문 있습니다!
http://boj.kr/c662ed4ae3554592adf3f8e8d6fa70eb안녕하세요, 선생님!저는 처음에 풀때 콤비네이션이 아닌카운팅 배열 방법 사용을 생각하여 문제를 풀어보았습니다.풀고 난 뒤에 예외처리가 미흡하여 백준에서 20번 정도 틀렸습니다.반례를 생각하며 가장 앞 부분 가장 뒷 부분 경계 체크를 열심히 하였으나 틀리는 이유를 도무지 모르겠습니다.선생님께서 하신 방법에 대한 이해는 모두 하였으나제 코드의 오류가 무엇일지 정말 궁금하여 질문을 남깁니다ㅠ예외 처리를 많이 하느라 코드가 지저분해 보일 수 있는 점 죄송합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-H 재질문
http://boj.kr/2f84a9840da946a29571c22e8f3ad14e위의 코드는 2%에서 시간초과가 나는 코드입니다.저는 처음에 큰돌님과 같이 등차수열의 합, 구간만큼 빼줘서 RET에 더해준다. 를 생각을 못했고그냥 계속 ret++을 해줬었습니다.해당 코드가 문제가 되는 점은중복인지 찾는 isUnique 라는 함수 때문이겠죠..?제한된 메모리에서 for문의 O(n)이10만, 9.9만...이렇게 연속으로 나올 수도 있어서 시간초과가 걸리는 걸까요? 선생님의 로직과 제 로직의 큰 차이점은 큰돌님은 '이전 것이 중복이 아니면 더이상 생각을 안해준다'이고 저는 '이전 것과 새로 들어온 것을 포함한 구간을 계속해서 중복인지 아닌지 계산한다'이런 점에서 오는 로직의 차이인 것 같아서 질문 드립니다..!
-
해결됨[자바/Java] 문과생도 이해하는 DFS 알고리즘! - 입문편
인덱스설정문의
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); N = Integer.parseInt(br.readLine()); M = Integer.parseInt(br.readLine()); graph = new boolean[N][N]; visited = new boolean[N]; int x, y; for (int i=0; i<=M; i++) { StringTokenizer tokenizer = new StringTokenizer(br.readLine()); x = Integer.parseInt(tokenizer.nextToken())-1; y = Integer.parseInt(tokenizer.nextToken())-1; graph[x][y] = true; graph[y][x] = true; } dfs(0); System.out.println(answer - 1); br.close(); } void dfs(int index) { visited[index] = true; IntStream.range(0, M).forEach(i -> { if (!visited[i] && graph[index][i]) dfs(i); }); answer++; }위에처럼 저는 +1을하지않고(그래프에 0인덱스들은 사용을 안한다고 생각해서요.)대신 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수를 입력받을 때 -1을해줘서 처리했는데요.예제입력은 정상처리 되나 실제 제출해보면 런타임 에러 (ArrayIndexOutOfBounds)가 발생합니다. +1을 해줘야하는거같은데... 제가 생각한 배열사이즈, -1로 입력받기가 잘못된걸까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-N 질문있습니다..
안녕하세요 큰돌선생님저는 deque 자료구조와 queue 자료구조를 이용하여 문제를 풀었는데요, 예제입력을 집어넣었을때 정답을 출력하지만 코드가 끝나지 않고 계속 돌아가더라구요.일단 모르겠다 하고 백준에 제출하니 맞았다고 떠서 좀 당황스러운데.. 혹시 어디가 잘못된거 일까요?사진은 예제2 입력을 넣었을때 입니다.예제1번과 3번은 정상적으로 출력 후 코드가 종료됩니다.작성한 코드입니다http://boj.kr/444ceed7f7844486bcc6feeb7d3d8e37
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
못 푼 문제에 대하여
안녕하세요, 큰돌 강사님아직 1주차밖에 진도가 나가지않아, 큰 어려움이 없이 문제를 풀어나가고 있습니다. 그러나 나중에 난이도가 올라가서 풀지 못할정도의 어려운 문제를 만나면 어떻게 하는 것이 좋을지 궁금합니다.저는 최대 30분 ~ 1시간 텀으로 문제를 풀고 이 시간이 초과된다면 강의를 통해 해설을 본다음 다음날 다시 풀어보고 못 푼 문제를 체크하여 강의를 완강후 다시 풀어볼려합니다. 이 방법에 대해서는 어떻게 생각하는지 또는 더 좋은 추천하는 방법이 있는지 궁금합니다.p.s) 좋은 강의 감사합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-G 문제에 대한 질문입니다.
http://boj.kr/53d3d972829a47cc80be8c0da3a25fa0안녕하세요 선생님!문제에 대한 코드를 작성한 뒤 예제에 있는 반례와질문하기에 다른 학생들이 질문하고 선생님께서 찾으신반례 모두 입력에 넣어봐도 정답으로 나오는데 백준에선 계속 틀리다고 합니다ㅠ문법적인 오류인지 간단한 실수 인지 잘 모르겠습니다.
-
해결됨코딩테스트 [ ALL IN ONE ]
동적 배열 리스트 중간에 원소 추가 내용이 강의와 pdf가 다릅니다.
강의에서는 "뒤의 원소들을 한칸씩 옮겨준 다음에, 1번 인덱스에 원소를 삽입한다" 라고 되어있는데, 강사님께서 공유해주신 pdf에는 "리스트의 중간에 원소를 삽입하는 경우, 원소를 삽입한 후 뒤의 원소들을 한 칸 씩 미루어야기에 O(n)의 시간복잡도를 갖습니다." 라고 나와있습니다. 강의 내용이 맞는거죠?
-
해결됨코딩테스트 [ ALL IN ONE ]
Notion 공유를 방금 요청했는데 궁금 한 것이 있습니다.
그냥 구글폼에 공유되었다고 확인할 수 있는 이메일(ex: gmail)과 제 노션 이메일 주소만 기입하면 되나요? 추가적으로 멤버 접근 권한이라든지 이런거 손댈 필요 없나요??시각적으로 도움될 수 있는 자료와 구체적인 설명이 담긴 양질의 강의를 제공해주셔서 감사합니다 :)
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-H
그리디에서 정말 많이 헤매는 학생입니다..!구간을 탐색하다가 만난 것을 다시 만나면s를 하나 늘려주고 e를 s+1로 땡겨 다시 카운팅한다는 것은 알겠습니다만마지막에 등차수열의 합은 왜 나오는지 모르겠습니다!3 1 2 가 남았을 때 while문이 끝나고3 1 2로 만들 수 있는 경우가{3} {1} {2} {3,1} {3,2} {1,2} {3,1,2,}따라서 등차수열의 합이다. 라는 말씀이실까요..?왜 등차수열의 합이 여기서 나오는지 잘 모르겠습니다!경우의 수를 구하는 문제인데 공차가 존재할 때 사용되는 등차수열의 합이 나오는 이유가 뭘까요...그리고 1 2 3으로 가다가 1을 만나 1 2 3 1이 되는 경우1을 버려야 하므로1 2 3 (s = 0, e = 3인 상황입니다, 영상에선 4:13)까지 세주고 ret에 (e-s)를 더한다.이 말이 1 2 3까지 오면서{1}{1,2}{1,2,3}을 만났기 때문에 (e-s)를 더해준다는 말씀이실까요??
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-D 메모리 초과
안녕하세요. 큰돌강사님, 아무리 코드를 쳐다보아도 문제가 생기는 지점을 못 찾아서 질문 남깁니다. 어떤 부분이 잘못되었는지 확인 부탁드립니다 http://boj.kr/fa8351292d3d46639bd4cdcff1ee2b2b
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-J 테케는 다 맞는데 틀렸다고 나옵니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요.풀이를 보지 않고 직접 풀었는데,0을 만나는 경우는 이동거리를 증가시키지 않는 형태로 하여 구현하였습니다.테스트 케이스는 다 통과하는데 제출하면 틀렸다고 나오는데 반례를 못찾겠습니다. 기존에 있는 다른 분이 올리신 비슷한 질문에 있는 반례도 통과를 해서 질문을 올리게 되었습니다. 감사합니다.http://boj.kr/f7e741dc7e5145bc9ea65dc83639e531
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-J 강의 질문
안녕하세요 선생님 양질의 코드 매번 감사합니다.강의를 들으며 살짝 헷갈리는 부분이 있는데요, 가장 먼 미래에 참조되는것을 swap 하는 알고리즘이라 하셨는데 이 가장 먼 미래라는게 상대적으로 먼 미래를 의미하는건가요? 예를들어 콘센트에 2번, 3번이 들어가 있을때앞으로 나올 2번과 3번이 둘다 있는경우 이 두가지 중 더 멀리있는 거랑 swap 하는 건가요? 추가로 16번 라인에서 j 의 시작이 i + 1이 아닌 i 가 아닌지 생각이 듭니다.만약 콘센트 2개 공간이 있고 2, 3, 1, 2, 3 순서로 사용을 한다고 할때, 먼저 2와 3이 콘센트에 들어가고 그다음 1이 들어갈때 이미 콘센트 공간이 가득차있으므로 2와 3중에 더 멀리 있는번호를 swap 하는건데 만약 i가 아닌 i + 1 부터 확인하게 된다면 1부터 확인하는게 아니고 2부터 확인하게 되는게 아닌가요? 그럼 한칸을 빼먹는거 같은데 이 부분이 좀 헷갈립니다.http://boj.kr/680d6abc7e004d7886939b2513c31723
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-A 치킨집과 집과의 거리 계산 로직 문의
안녕하세요. 강사님,강사님의 코딩테스트 강의 열심히 듣고 있습니다. 오늘 문제는 다소 어렵네요..치킨집과 집 과의 거리 계산 로직이 home 리스트 순서와 chicken 리스트 순서대로 구하던데, 순차적으로 index를 부여받아서 순차적으로 dist 구하면 되는건가요?? for(pair<int, int> home : _home){ int _min = 987654321; for(int ch : cList){ int _dist = abs(home.first - chicken[ch].first) + abs(home.second - chicken[ch].second); min = min(min, _dist); }저는 거리 계산도 bfs로 풀어야 하는줄 알았는데, 어떤 조건일 때 bfs로 안풀어도 되는지 궁금해요
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-K 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요. 저는 자바로만 알고리즘을 풀어온 수강생입니다.일단 저의 코드는 아래 링크와 같습니다.http://boj.kr/c098c62b8ee14b3b88f6058b7d055a29코드를 잘 보시면 4번째 줄에 cnt 배열의 길이를 26으로 설정해두었음에도 통과가 되었습니다.원래대로라면 배열 길이가 200(최소 91)은 되어야대문자 Z까지 다 카운트할 수 있을텐데 제 부주의로 26으로 해버렸습니다이렇게 되면 for(char a : s) cnt[a - 'A']++;로 해줘야 할 줄 알았는데 그냥 통과가 되버렸네요.chatgpt에게 물어본 바로는 그러나 C++에서는 배열의 인덱스가 음수가 아니라면, 범위를 벗어나더라도 컴파일러는 해당 인덱스를 양의 정수로 간주하여 메모리를 접근하려고 시도합니다. 이런 상황에서는 예상치 못한 동작이 발생할 수 있으며, 이는 정의되지 않은 동작으로 분류됩니다. 따라서 코드가 정상적으로 동작하는 것은 운이 좋게 동작하는 경우일 수 있습니다만, 이는 올바른 코드 작성 방법이 아닙니다.자바였으면 ArrayIndexOfBound를 내뿜으며 컴파일오류가 나왔을텐데 통과가 되었다고 해서 약간 당황스럽네요혹시 이게 어떻게 된건지 설명해주실 수 있으실까요?만약을 위해 공유소스 외에도 에러문(?)이 나와있는 링크도 남깁니다.https://www.acmicpc.net/source/65705843감사합니다.
-
해결됨코딩테스트 [ ALL IN ONE ]
공부 순서를 어떻게 해야할까요
이제부터 제대로 코딩 테스트를 준비하려고 합니다.배열 강의를 듣는중인데 배열 섹션을 다 들었다는 가정하에배열에 관한 알고리즘을 좀 많이 풀어보고 다음 섹션으로 넘어가야할지(4~5일 소요된다는가정입니다.)아니면 매일 배열에 관한 문제를 1~2개 정도 풀면서 다음 강의를 계속 듣고 진도를 나가야할지 궁금합니다.
-
해결됨파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
이렇게 풀어도 맞는 풀이일까요?
안녕하세요 좋은 강의 하나하나 들으면서 열심히 알고리즘 공부하고 있습니다. 다름이 아니라 제가 역수열 문제를 강사님의 풀이와 다르게 풀었는데요 이렇게 풀어도 맞을까요? 예제로 주어진 테스트 케이스는 모두 만족했습니다. 혹시 반례가 존재할까요?n=int(input()) A=list(map(int, input().split())) A=A[::-1] A_List=[n] start=n-1 for x in A[1:]: A_List.insert(x, start) start-=1 print(*A_List, sep=" ")
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
cin에 관한 질문
강의 잘 듣고 있습니다.while(scanf...)식으로 입력을 계속 받는 형태의 문제에서 cin >>입력을 쓸 수 있는 방법에 대해 궁금합니다. 예전에 풀었던 문제중엔 됐던 것도 있고 아닌것도 있었는데 정확한 기준을 모르겠네요. cin으로 입력받을 수 있는 방법이랑 scanf가 더 효율적인거라면 그 이유도 궁금합니다.