크레인 인형뽑기 테스트 케이스
해결됨
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
크레인 인형뽑기 테스트케이스 5번 잘못된거 아닌가요. 문제에는 바구니 아래부터 차곡차곡 쌓여있다고 되어 있는데 테스트 케이스는 인형 중간에 빈칸이 있네요.
- java
- 코딩-테스트
173만명의 커뮤니티!! 함께 토론해봐요.
해결됨
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
크레인 인형뽑기 테스트케이스 5번 잘못된거 아닌가요. 문제에는 바구니 아래부터 차곡차곡 쌓여있다고 되어 있는데 테스트 케이스는 인형 중간에 빈칸이 있네요.
해결됨
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
안녕하세요 큰돌님 2-E 문제에서 반례를 찾지 못해서 질문드립니다. 다음과 같이 주어진 배열을 재귀적으로 나누어서 배열 크기가 1일때부터 string으로 다시 합치는 코드입니다. #include<bits/stdc++.h> using namespace std; string a[64][64]; int n, ny, nx; string ret, temp; int dy[] = {0, 0, 1, 1}; int dx[] = {0, 1, 0, 1}; string four(int num, int y, int x){ if(num == 1){ return a[y][x]; } else{ string s = ""; for(int i = 0; i < 4; i++){ ny = y + dy[i] * (num / 2); nx = x + dx[i] * (num / 2); s += four(num / 2, ny, nx); } if(s == "0000") return "0"; else if(s == "1111") return "1"; else return "(" + s + ")"; } } int main(){ cin >> n; for(int i = 0; i < n; i++){ cin >> temp; for(int j = 0; j < n; j++){ a[i][j] = temp[j]; } } if(n == 1) { ret = "(" + a[0][0] + ")"; cout << ret << '\n'; } else{ ret = four(n, 0, 0); if(ret == "0" || ret == "1") ret = "(" + ret + ")"; cout << ret << '\n'; } return 0; }
미해결
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
http://boj.kr/19b569e6243a4c24b597ed31b2dbdbc3 테스트케이스 통과하고, 질문게시판을 통해 루트노드만 있을 때 예외처리까지 처리했지만 제출하면 바로 실패로 뜨는데 어떤 반례가 있을까요?
미해결
파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
문제 파일은 어디에 있나요? 안보여서 강의 영상 정지시키고 풀었는데... 이 방식이 아닌것 같은데 문제 파일은 안보이네요
미해결
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
http://boj.kr/92388f57a46746da910101a9b3400b69 문제를 풀고 정답이 되어서 답안을 확인하는데 overflow 조건 체크 후 방문가능한 지점인지 체크하는 과정에서 제가 ny,nx 대신 y와 x를 입력해도 정답처리가 되었습니다. 생각해보면 반드시 방문할 수 없는 지점을 방문하는 형태가 되어 오답이 나와야 할 것 같은데 정답이 나와 질문드립니다! 먼저 방문을 하고 어차피 이동을 못하니까 결과가 같을 거라고 예상은 되지만 큰돌님의 답변이 궁금합니다!
미해결
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. http://boj.kr/4407e944ea384e408f615a6ef1ca8be5 http://boj.kr/b5895e45632846f2b6f7448082492dda 안녕하세요. 2-S 문제를 자바스크립트로 구현해보았는데 첫번째 링크의 코드와 두번째 링크 코드의 차이는 그래프를 맵으로 구현한 것과 배열로 구현한 것 차이라고 생각합니다. 맵 자료형의 Value에 해당하는 부분도 배열로 구현했기에 두 코드의 시간복잡도가 동일하다고 생각했는데 첫번째 링크는 통과하고 두번째 링크는 시간초과가 나옵니다. 맵으로 구현한 코드가 O(V+E)라면 배열로 구현한 코드가 O(V*E)라서 시간초과가 나는걸까요?? 감사합니다!
해결됨
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
선생님 안녕하세요. 풀이 방식에 질문이 있어 질문드립니다. 선생님이 강의에서 풀어주신 방법과 다르게 저는 아래 코드처럼 작성을 했는데요. 저랑 풀이 방식이 크게 다른거 같아 제 풀이가 문제에서 원하는 풀이 방식이 아닌가 싶어 질문드립니다. 🙂 import java.util.Scanner; public class Main { // 문자열 뒤집는 메서드 public String solution(String str) { String answer = ""; char[] ch = str.toCharArray(); // 반복문 역순으로 돌리기 for (int i = ch.length - 1; i >= 0; i--) { answer += ch[i]; } return answer; } public static void main(String[] args) { Main main = new Main(); Scanner scanner = new Scanner(System.in); int number = scanner.nextInt(); while (number > 0) { System.out.println(main.solution(scanner.next())); number--; } } }
미해결
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
항상 감사드립니다 선생님!
미해결
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
안녕하세요 선생님, 항상 강의 잘 보고 있습니다!! 이 문제 답의 visited가 1차원 배열이냐, 2차원 배열이냐에 따라서 시간복잡도 차이가 3배이상 나더라구요. 배열과 관련한 연산은 인덱스를 통한 참조와 삽입밖에 없는데 이렇게 차이가 많이 나는 이유가 뭘까요? 2차원 배열을 사용해서 통과한 답 첨부해드립니다. 감사합니다. http://boj.kr/8e9b226e7708455da2bee2555f8403db
미해결
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
인덱스를 음수로 사용할 수 없으니까 처음의 값들을 m최대값 10만이니 10만1 이상의 값에 값을 할당하셨는데. 그런데 10만2부터 사용하시고 10만1은 사용하시지 않으셨더라구요. 그래서 이해하는 과정에서 중요한건가 싶어서 10만도 해보고 10만1부터도 해보았습니다. 예로 update_idx = 100000 Update(update_idx , 1); mp[temp] = update_idx--; 이렇게 수정해보았습니다. 범위에 딱 맞으니까 10만개까지 딱 정보가 들어올 수 있게되는데 sum에서 잠시 생각해보니 tree[0] 인덱스에 10만번째 정보가 들어올 것이라고 생각이 들어서요 while(i>=0) 으로 바꾸어보았는데 .. (ㅋㅋ 왜 [1] 부터 하시라는지 알았습니다..) 당연히 무한루프를 돌았고 다시 while(i>0)으로 수정했는데 정답이 떴습니다. 사실 오답이어야 하는게 아닌가 싶어 질문드립니다.
해결됨
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
안녕하세요 큰돌님:) 백준 3986 문제에 대해서 질문드리고 싶은 게 있습니다! http://boj.kr/00e868dc6fea4a5cbcb0048b32aed50b 위의 코드와 같이 st.push(s[0]); 을 먼저 한 다음 j=1 부터 반복문을 시작하면 왜 21112 segmentation fault 오류가 나오는지 궁금합니다..ㅜㅜ 그리고 제가 1주차 문제를 풀고 있는데 거의 3개 중에 하나 꼴로 틀리고 어떨 땐 연속으로 계속 틀리는데 강의를 들으면 설명을 잘해주셔서 이해안되는 부분 없이 전부 이해가 가긴 합니다.. 접근법을 배우는 거에 의의를 두고 틀려도 계속 진도 나가면서 풀고있기는 한데 자꾸 틀리니까 위축이 되어서요..ㅠㅠ 지금처럼 꾸준히 진도 나가는 것이 맞을까요?? 제 수준에서는 다시 교안으로 돌아가야 하는지.. 모르겠습니다 조언해주시면 감사합니다..! 마지막으로 선생님께서 올려주신 추천문제들만 복습해서 봐도 코테 마스터 할 수 있을까요..? ㅜㅜ 아니면 다른 문제들도 함께 겸해서 공부해야하는지 궁금합니다 감사합니다.
미해결
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
처음 강의 들을 때에는 BFS, DFS기본 문제도 못풀었는데 풀었던 문제들 다시 풀어보고 또 풀어보면서 BFS, DFS, 조합 등에 익숙해지니 이런 문제들도 혼자 풀 수 있는 날이 오네요 ㅠㅠㅠ http://boj.kr/9831abd022b2486f9421eb048c8ae62d 제 나름대로 배웠던 지식들 활용해서 풀어봤습니다. 선생님 풀이보다 10ms정도 시간이 더 느린 것은 메모리를 복사하는 과정에서 늦어지는 것일까요?
해결됨
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. http://boj.kr/479470df1029497d9df3d10d7ce3e633 방식은 현재 골 넣은 시간을 입력 받고 원래 이기고 있던 상황이거나 상대가 골 넣었는데도 아직도 이기고 있는 상황에서 이전 시간과 현재 시간의 차이 만큼 팀의 승리 시간에 추가하는 방식입니다. 두 팀의 골이 같아진 경우에는 마지막으로 골을 넣은 팀의 상대 팀의 승리 시간을 추가했습니다. 마지막으로는 경기 종료 48분까지 이기고 있는 팀의 시간을 추가해서 출력했는데 예제 3번까지는 맞게 나오는데 제출해보면 틀리다고 나옵니다. 어디가 틀린 걸까요?
미해결
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
안녕하세요 선생님 알고리즘 교안 m2 초기 셋팅 관련하여 아래와 같이 질문드립니다.brew는 설치 완료 하였고 bits/stdc++.h 파일 생성에서 문제가 되는데요.아래과 같은 경로로 가서 코드 모두 복사하고 vi편집기를 빠져 나오게 되면 아래와 같이 파일 생성이 되지않습니다.이후 파일 생성이 되지 않아 다시 파일을 생성하려고 하면 스왑하라는 두번째와 같은 창이 뜨게됩니다.확인한번만 부탁드립니다.
해결됨
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
안녕하세요 수민님 ㅎㅎ 해당 함수에서 시간복잡도가 어느정도 큰 주요 로직이라고 보시면 됩니다. 예를 들어 #include<bits/stdc++.h> using namespace std; int N, cnt; void solve(int N){ cnt++; cout << cnt << '\n'; if(N == 0) return; for(int i = 0; i < 3; i++){ solve(N - 1); } return; } int main(){ cin >> N; solve(N); return 0; } 이 solve라는 함수에서 주요한 로직은 for(int i = 0; i < 3; i++){ solve(N - 1); } 이부분입니다. --------------------------------------------------- 최근 질문에 큰돌님께서 작성하신 답변을 제가 일부 가져왔습니다. 여기서는 메인 로직 즉, 주요 로직이 반복문이라고 설명하셨는데, 강의 5:22초에는 메인 로직이 출력문이라 O(1)이라고 말씀하십니다. 강의내용과 질문게시판 답변 중 뭐가 맞는 건가요?
해결됨
코딩테스트 [ ALL IN ONE ]
노션 링크 신청했습니다 ~ 감사합니다.
미해결
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
안녕하세요 선생님. 강의 잘 듣고 있습니다. 오늘 기점으로 2단원 dfs/bfs 다 끝나서 3단원 완전탐색 백트래킹 단원을 공부 시작하려고 합니다. 다름이 아니라 6단원( 이분탐색, LIS ) 은 4,5단원을 먼저 공부하고 난 뒤 듣는게 더 효율적일까요? 아니면 3단원 끝나고 들어도 될까요? 학교와 병행중이라서 중간고사 전에는 3단원을 끝낸 후 4,5단원을 하기 전에 문제 수가 그나마 적은 6단원을 먼저 들으려고 하는데 단원이 뒤에 있어서 이유가 있을까 싶어 질문하게 되었습니다!
미해결
it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
7번을 강의해주신 대로도 풀어보고 다른 형식으로도 풀어보고 싶어서 다음과 같은 코드를 짜봤는데, 대문자에서 소문자로 변환은 잘 이루어지지만 중간에 포함된 띄어쓰기가 나타나면 거기서 멈춘 상태로 출력이 됩니다. 이유, 그리고 어떻게 수정해야 할 지가 궁금합니다. 예시) 입력: BeA UT I ful, 출력: bea #include <iostream> #include <vector> #include <algorithm> #include <string> using namespace std; int main(){ ios::sync_with_stdio (false); cin.tie (NULL); cout.tie (NULL); string str; cin >> str; vector<char> answer; for(int i=0; i<str.size(); i++){ if(str[i]!=' '){ if(str[i]>=65 && str[i]<=90){ answer.push_back(str[i]+32); } else{ answer.push_back(str[i]); } } } for(int i=0; i<answer.size(); i++){ cout << answer[i]; } }
해결됨
코딩테스트 [ ALL IN ONE ]
내일 부터 학습 시작하려고 합니다. 노션 링크 공유 부탁드립니다ㅎㅎ
미해결
자바 코딩테스트 - it 대기업 유제
안녕하세요 강사님 강의 잘 듣고 있습니다! 잃어버린 강아지 문제에서 count관련 이해가 안되는 부분이 있어서요. 관련 부분만 가져왔는데 count는 처음에 0으로 초기화 된 상태에서 while문에 들어가자마자 1이 증가하고, 마지막으로 들어갈 때는 9999상태에서 들어가서 10000이 되고, 그시점에 마지막 번째 while을 실행하면서 현수가 강아지를 찾아서 x1 == x2 && y1 == y2이 된 후 break(사실상 while문이 끝나서 break된거나 마찬가지지만)될수도 있는건데 강아지를 못찾고 반환하는 0을 리턴하는 조건이 count >= 10000이 되면 10000번째에 찾더라도 못찾은걸로 표현될수 있지 않나 싶어서요. 그런데 이런 생각을 하다보니까 그러면 진짜로 10000을 넘을때까지 못찾는 경우는 어떻게 알수 있게 되지? 라는 생각이 들면서 정리가 안되기 시작했습니다. ㅠㅠ count가 while안에 있기 때문에 10000번째에 딱 찾고 끝나고 나면 더이상 count를 올려줄 방법이 없는데, 어떻게 해야 만번 이상을 했고 그래도 찾을수 없었던걸 증명할수 있을지... 일단 생각으로는 while을 true로 해놓고 break하는 조건을 하나 더 둬서 if(x1 == x2 && y1 == y2) break; 아래에 if(count == 10000) break;나 if(count >= 10000) break; 이렇게 하는 방법이 떠오르긴 하는데 이렇게 해도 괜찮을지, 강사님이 해주신 코드로 충분한데 제가 이해를 못하고 있는것일지.. 설명 늘 자세히 해주시는데도 질문해서 죄송합니다 🥲 항상 감사합니다 int d1 = 0, d2 = 0, count = 0; while (count < 10000) { count++; int nx1 = x1 + dx[d1]; int ny1 = y1 + dy[d1]; int nx2 = x2 + dx[d2]; int ny2 = y2 + dy[d2]; boolean flag1 = true, flag2 = true; if (nx1 < 0 || nx1 >= n || ny1 < 0 || ny1 >= n || board[nx1][ny1] == 1){ d1 = (d1 + 1) % 4; flag1 = false; } if (nx2 < 0 || nx2 >= n || ny2 < 0 || ny2 >= n || board[nx2][ny2] == 1){ d2 = (d2 + 1) % 4; flag2 = false; } if(flag1 == true){ x1 = nx1; y1 = ny1; } if(flag2 == true){ x2 = nx2; y2 = ny2; } if(x1 == x2 && y1 == y2) break; } if (count >= 10000) return 0;