묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
6-F 질문드립니다 :)
안녕하세요 선생님 🙂 한군데 이해가 가지 않는 부분이 있어서 질문드립니다. 아래의 코드는 Check함수에서 init_attack 변수를 설정하여 attack으로 초기화하도 않았을 뿐더러 아예 사용을 하지 않았습니다. 결론부터 말씀드리면 틀렸는데요, 이게 왜 틀린건지 이해가 되지 않습니다. 혹시 call by value인가요? 입력 값에서 용사의 공격력을 이미 입력받았고, 그 공격력을 포션방을 갔을 때 입력받은 용사의 공격력을 증가시키면 된다고 생각했는데요, 이게 왜 안되는걸까요?http://boj.kr/9ca6118540e54a259b26c070a1b20868
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
범위 체크 질문있습니다.
http://boj.kr/c5c442d82b24467fbbac115beed3793c와 같이저는 배열 [0][0]~[x-1][y-1]이 아니고 배열을 넉넉하게 잡아[0][0][0][0][0][0][0][0] // 사용 ______ _[0][0] _____________ _[0][0] _____________ _[0][0]_____________ _[0][0]_____________ _[0][0][0][0][0][0][0][0] 과 같은 형태로[1][1] ~ [x][y] 까지 활용을 했는데요. 문제가 메모리를 정말 타이트하게 잡지 않는 이상 선생님께서 말씀하신 범위체크하고 위 방법은 취향 차이라고 보면 될까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-A 코드확인 부탁드립니다.!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요! 강의 듣고 변수만 바꿔서 테스트해서 예제는 통과했는데 제출하니까 에러가 발생해서 ㅜㅜ 코드 한번 확인 부탁드립니다. http://boj.kr/052be6c86bf945e5a945a7682b12f2aa
-
미해결김영한의 실전 자바 - 중급 2편
해시 충돌 구현 링크드리스트 사용이유!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요! 강사님께서 링크드 리스트를 사용하시는 이유를 설명해주셨는데 잘 이해가 안가서 질문을합니다!어레일이스트를 사용하는것보다 링크드 리스트를 사용하는 이유가.. 충돌?이 덜나서라고 하셨는데 이부분을 자세하게 설명해주실수있나요? 잘 이해가 안가네요 ㅜㅜ
-
미해결김영한의 실전 자바 - 중급 2편
String[]에서 for-each가 작동하는 이유는 뭔가요?
[섹션 11. 순회, 정렬, 전체 정리] 강의를 들으면서 학습 자료에서 다음과 같은 내용을 볼 수 있었습니다. "자바는 Iterable 인터페이스를 구현한 객체에 대해서 향상된 for문을 사용할 수 있게 해준다" 근데, String[]에는 Iterable 인터페이스가 구현되어 있지 않은 것 같은데 어떻게 for-each를 사용할 수 있는지 궁금합니다.
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
87번 문제 섬나라 아일랜드 질문
안녕하세요 섬나라 아일랜드 질문이 있어서 코드 올려드립니다.출력값이 구현이 되질 않아서 어디가 틀렸는지 찾아봐도 모르겠습니다. 한 번만 봐주시면 감사드리겠습니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-H 질문드립니다.
다음 코드의 문제가 뭔지 도통 모르겠어서 질문드립니다 #include<bits/stdc++.h> using namespace std; string s; bool flag; int cnt; bool isVowl(char c){ return c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u'; } int main(){ cin >> s; while(true){ cnt = 1; flag = 0; if(s == "end") break; if(s.find("a") == string::npos && s.find("e") == string::npos && s.find("i") == string::npos && s.find("o") == string::npos && s.find("u") == string::npos) { flag = 1; break; }; for(int i = 1; i < s.size(); i++){ char prev = s[i - 1]; if(prev != 'e' && prev != 'o' && prev == s[i]){ flag = 1; break; } if(isVowl(prev) && isVowl(s[i])) cnt++; else if(!isVowl(prev) && !isVowl(s[i])) cnt++; else cnt = 0; if(cnt == 3) { flag = 1; break; } } if(flag) cout << '<' << s << "> is not acceptable.\n"; else cout << '<' << s << "> is acceptable.\n"; cin >> s; } return 0; }
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
문드윽뀨
function 합계_구하기(숫자1, 숫자2, 숫자3) { const 최대값 = Math.max(숫자1, 숫자2, 숫자3); const 나머지_합계 = [숫자1, 숫자2, 숫자3] .filter(값 => 값 !== 최대값) .reduce((이전값, 현재값) => 이전값 + 현재값, 0); return 나머지_합계; } console.log(합계_구하기(6, 7, 11)); // 13 console.log(합계_구하기(13, 33, 17)); // 30한글로 하고 있는데 문득 왤캐 없어보이나 싶어서 글 올ㄹ미미미ㅠㅠㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
런타임 에러 (Segfault) 관련 2-Q 질문입니다.
http://boj.kr/59bfb607f084433aaf920e22c71f7ad7제출을 하니 ```런타임 에러 (Segfault)```이 뜨는데 혹시 해당 코드에서 주의해야 할점이나 반례가 있을까요??
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
강사님 코드에 대해서 질문이 있습니다.
강사님이 강의에서 푸신 문제들 말고도 다른 문제풀이한것들도 보고 싶은데 혹시 큰돌님의 백준 아이디를 알 수 있을까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
6-C 질문드립니다 :)
안녕하세요 선생님 🙂 덕분에 이분탐색 문제 관련해서 아주 쉽게 익힐 수 있었던 것 같습니다. 감사합니다 ^^ 아래 링크는 강의를 보기 전에 풀이했던 풀이인데요, 선생님과의 차이점은 cnt를 0으로 초기화했다는 것 딱 하나입니다. 강의에서도 cnt를 1로 초기화한 이유는 어차피 한번은 무조건 뽑고 시작하기 때문이라고 설명해주셨는데요, 부끄럽지만 그 말씀이 어떤 의미인지 이해가 가지 않아 질문 드립니다. 자세히 설명해주시면 정말 감사하겠습니다!!http://boj.kr/b66ec43db9944743b4afe1525f8a161b
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-s
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 로컬에서는 동작하는데 제출시 틀리게 나와서 질문드립니다. 혹시 배열의 크기때문일까요? http://boj.kr/021146ee28c946faa187aad995554ebe
-
해결됨코딩테스트 [ ALL IN ONE ]
다익스트라 코드 중에 궁금한 것이 있습니다.
def dijkstra(graph, start, final): costs = {} # 방문 여부 pq = [] # 우선순위 큐 heapq.heappush(pq, (0, start)) # 시작 노드 추가 while pq: cur_cost, cur_v = heapq.heappop(pq) if cur_v == final: return cur_cost if cur_v not in costs: # 방문여부 확인 costs[cur_v] = cur_cost # 인접 노드 탐색하면서 비용 업데이트 for next_v, cost in graph[cur_v]: # 현재노드와 연결된 인접노드와 그 비용 next_cost = cur_cost + cost heapq.heappush(pq, (next_cost, next_v)) return costs[final]정말 사소한건데요, while pq: 내용 중 for cost, next_v in graph[cur_v]: 를 for next_v, cost in graph[cur_v]: 로 고쳐도 되는지 묻고 싶습니다. 우선순위 큐는 비용을 기준으로 하니까 (E,V)가 맞는거 같은데요. 그래프가 G=(V,E) 수식을 따르다 보니까 그래프로 초기화할 때도 ("A", 3)과 같이 노드와 비용 순서대로 하잖아요? 그래서 이러한 논리를 for문에도 적용하면 훨씬 이해하기 쉽지 않을까 개인적으로 생각이 듭니다. (아! 이건 제 개인적인 생각이니 코드를 고쳐달라고 요구를 하는 건 절대 아닙니다 😅)
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-N 질문있습니다.
안녕하세요 선생님.입력 값 c에 따라서 _time의 second가 1 또는 3이 되는 이유를 잘 모르겠습니다. 알려주시면 정말 감사하겠습니다!
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-P 질문있습니다
안녕하세요 선생님. 이해가 안되는 부분이 좀 많습니다. 아이디어들은 대략적으로 떠올렸지만 완벽하지않아서 강의를 보았는데요, 톱니바퀴가 맞닿아있을 경우에 (findL와 findR함수) 극이 같다면 왜 i를 리턴해야하는지, 극이 다르다면 왜 L함수는 왜 0을 리턴하는지 R함수는 왜 n-1을 리턴하는지 잘 모르겠습니다. 설명해주시면 정말 감사하겠습니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-L 질문입니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 선생님. 3-I 문제 질문있습니다. ---먼저 기존 실패했던 코드의 dfs입니다.void dfs(int y, int x) { for (int i = 0; i < 4; i++) { int ny = y + dy[i]; int nx = x + dx[i]; if (ny < 0 || nx < 0 || ny >= r || nx >= c) continue; if (check[a[ny][nx] - 'A']) { int size = 0; for (int i = 0; i < 26; i++) { if (check[i] > 0) size++; } ret = max(ret, size); /*cout << "ny: " << ny << " nx : " << nx << "\n"; cout << "ret : " << ret << " visited[y][x] : " << visited[y][x] << "\n";*/ continue; } check[a[ny][nx] - 'A']=1; dfs(ny, nx); check[a[ny][nx] - 'A']=0; } return; } ---강의를 본 후 성공한 코드입니다.void dfs(int y, int x,int cnt) { ret = max(ret, cnt); for (int i = 0; i < 4; i++) { int ny = y + dy[i]; int nx = x + dx[i]; if (ny < 0 || nx < 0 || ny >= r || nx >= c) continue; if (check[a[ny][nx] - 'A']) continue; check[a[ny][nx] - 'A']=1; dfs(ny, nx,cnt+1); check[a[ny][nx] - 'A']=0; } return; } 해당 문제 시간복잡도가 크게 잡으면 3^26승이라고 하셨는데 선생님의 코드가 통과하는 이유는 테스트 케이스가 부실하다고 생각하면 되는건가요? 실패 이유는 '말이 몇칸 지나왔는지 체크'할 때 for문을 통해 26회 반복문을 돌았기 때문이라고 생각되는데요.이 정도 차이가 왜 실패로 이어지는지 이해가 안됩니다! 감사합니다. 선생님
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-G 9996번 문제 질문합니다!
선생님 안녕하세요! 1-G (9996번)문제를 푸는데 제출 시 정답은 나오는데, 이상해서 질문 드립니다.http://boj.kr/4afd7adce3774529abedc8229fb51913해당 코드로 작성을 했는데, vscode에서 실행 후 예시 입력값을 넣고 엔터를 누른뒤 한번 더 엔터를 눌러야 마지막 출력값이 나옵니다.cin이 개행문자를 만나지 못해서 마지막 입력값이 들어오지 못하는것 같아 getline으로 바꾸고 cin 이후 cin.ignore()이나 clear을 해도 개행문자가 getline으로 들어 오는데, 뭐가 잘못됐는지 모르겠습니다..
-
미해결입문자를 위한 코딩테스트 핵심(이론과 문제풀이) [Python]
최소값의 위치
안녕하세요 저는 해당 문제를 배열 길이와 배열 요소를 input으로 입력받고 최소값의 위치를 반환하는 코드를 작성해봤는데 답이 틀리게 나오네요 반복문으로 배열 인덱스에 따른 요소값은 제대로 나오는데 무엇이 문제인가요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-Z 변형 질문 드립니다 :)
안녕하세요 선생님 🙂 최근들어 질문을 너무 많이 하는 것 같아서 정말 죄송합니다 ㅠㅠ그만큼 절실하다는 것으로 받아들여주시면 정말 감사하겠습니다 🙂 아래는 배열이 아닌 vector<pair<int, int>> 자료형으로 문제를 풀이하였습니다.하지만, 그동안 배열과 vector<pair<int, int>> 자료형을 많이 사용해서 그런지 vector<vector<int>> 자료형으로 변환을 해보려고 하고 있으나 풀이가 잘 안되더라구요 ㅠㅠ 코테를 많이 보진 않았지만 그동안 보았던 코테는 함수를 딸랑 하나놓고 함수를 채워나가는 형식이었는데요, 제가 기억하기로 vector<pair<int, int>>보다는 파라미터로 vector<vector<int>> 자료형이 많았던 것으로 기억합니다. 계속해서 연습하고는 있지만 잘 안되어서 도움 요청 드립니다 :)http://boj.kr/e6357bc26b214a5093bee0fc0e077486
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
dp테이블과 tsp의 의미
제가 n=5일때 대략적인 코드 흐름을 작성했습니다. 보라색으로 적은 것이 지금까지 방문한 지점(visited를 더 보기 쉽게 표현)입니다.맨 처음 줄에서 0->1->2->3->4 순으로 방문을 할 때 3->4 에서 tsp가 호출이 되면 tsp(4,01234) 로 호출이 되는데( visited|(1<<i)) 부분을 보기 쉽게 방문한 정점으로 표시한것입니다 ) 4->0으로 가는 weight가 2, 3->4 로가는 weight가 3이라고 가정 하면 tsp(4,01234)는 2를 반환하고 dp[3][0123]=tsp(4,01234)+ (3->4로 가는 weiht) = 2+3 =5가 저장이 되게 됩니다. 그러면 여기서 dp 테이블의 의미는 3에서 부터 시작해서 visited 되지 않은 정점들을 모두 방문하는 최적의 비용을 저장하는게 아닌가요?? tsp도 마찬가지로 here에서 출발해서 visited 되지 않은 정점들 모두 방문하는 방법 중의 최적의 비용을 리턴한다고 생각이 드는데 큰돌 강사님께서 설명하신 부분과 반대로 해석되는거 같아서 여쭤봅니다! ㅜ 그리고 dp에 대해 질문이 있습니다. 제가 이해한 바로는 완전 탐색을 하는데 너무 경우의 수가 많아 중간 중간 예전에 계산해둔 값(dp테이블 등을 이용)으로 중복된 계산을 피해 시간복잡도를 줄이는 것으로 이해했습니다. 그렇다면 이번 문제는 원래는 모든 경우의 수가 16! 절대 완탐으로 풀 수 없어서 dp 방법을 사용하는데 dp를 사용했을 때 이렇게 재귀 함수로 풀면 대략적인 시간복잡도는 계산 못하는 건가요? 보통 문제를 풀기 전에 대략적인 시간복잡도를 측정을 하고 로직을 짜기 시작하는데 이렇게 재귀함수가 들어가고 중간에 dp 테이블을 통해 중복된 계산을 피하는 로직으로 짜면 시간복잡도를 정확히 몰라 뭔가 함부로 시도를 못할거같네요 ㅠ