[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
section .text global main main: ;write your code here xor rax, rax ret 강의 자료와는 달리 맨 처음 실행화면에 #include로 시작하는 구문도 뜨지 않고 이렇게만 뜨는데 버전이 달라지면서 오류가 뜬 걸까요? C:\Users\USER\AppData\Local\Temp\SASM\program.asm:1: error: label or instruction expected at start of line C:\Users\USER\AppData\Local\Temp\SASM\program.asm:9: error: parser: instruction expected gcc.exe: error: C:\Users\USER\AppData\Local\Temp\SASM\program.o: No such file or directory hello world를 실행하면 이렇게 뜹니다.
안녕하세요 큰돌님! 5-G문제에서 배열의 소수를 만드는 크기를 4000004로하면 틀렸습니다가나오고 4000001로하면 맞는데 이유를 잘 모르겠습니다. 혹시 어떤이유로 틀리는 걸까요? 소수를 확인하는 것은 4000001이던 4000004이던 상관없지 않나요? http://boj.kr/b9d1006666d949a09380a1dcd8f6b833
안녕하세요 알고리즘 교안 112쪽에 Array의 요소 수정하기 예시 코드에서 궁금증이 생겨 질문 남깁니다. go함수와 go 2함수, go 3함수는 매개변수로 각각 a array자체, a의 크기, a의 포인터를 매개변수로 받는다고 되어있는데 main함수에서는 모두 array a를 매개변수로 넘겨서 활용하고 있는데 이게 왜 가능한지 궁금합니다.
안녕하세요 선생님. NBA농구 문제를 푸는데 문제 이해를 잘못 한 것 같아요. 1팀, 2팀이 각각 이기고 있는 시간을 출력하는 문제인데요. 아래 예제로 예를 들면, 1팀이 이기고 있는 시간은 01:10 ~ 45:30 으로 44분20초가 되어야 하는 것 같은데, 왜 45:30인지 모르겠어요. 예제 입력 2번에서는 01:10 ~ 21:10으로 1팀이 20분 이기고 있는 것이 맞는데 예제 3번에서는 왜 다른지 이해가 안돼요.
#include<bits/stdc++.h> using namespace std; int n, m, j, l, r, temp, ret; int main(){ cin >> n >> m >> j; l = 1, r = l + m - 1; for(int i = 0; i < j; i++){ cin >> temp; if(l <= temp && temp <= r) continue; else if(temp < l){ ret += (l - temp); l = temp; }else{ ret += (temp - r); l += (temp - r); } } cout << ret << '\n'; } #include<bits/stdc++.h> using namespace std; int n, m, j, l, r, temp, ret; int main(){ cin >> n >> m >> j; l = 1; for(int i = 0; i < j; i++){ r = l + m - 1; cin >> temp; if(l <= temp && temp <= r) continue; else if(temp < l){ ret += (l - temp); l = temp; }else{ ret += (temp - r); l += (temp - r); } } cout << ret << '\n'; } 안녕하세요 선생님 질문이 있어 이렇게 글을 남깁니다. r을 반복문 안에다 선언하면 맞고 밖에다 선언하면 틀렸다고 나오는데 도저히 이유를 모르겠습니다.
틀린 코드 https://www.acmicpc.net/source/58095478 문제는 이해를 했고 제가 짠 코드가 시간초과가 걸려야한다는 점도 이해했습니다. 처음 접근시 이분탐색 + check로 문제를 해결하려고 했는데요. 코드에서 naive하게 while문을 이용해서 몬스터의 체력을 공격력을 으로 빼주는 방법을 사용했고 용사가 먼저 때리고, 그다음 맞는 것도 구현했습니다. 이런 접근이 기존 시간 복잡도를 logN * N * (100000) 까지 증가할 수 있다는 점은 이해를 했는데, 왜 백준에서는 시간초과가 아닌 틀렸다고 나오는지 이해가 안되서 질문드립니다. 로직자체는 맞다고 생각이 드는데 시간초과도 틀리다고 뜰 수 있는걸까요? bool check(long long mid) { long long atk = hatk; long long hhp = mid; for (int i = 0; i < n; ++i) { if (v[i].t == 1) { mhp = v[i].h; matk = v[i].a; /* 왜 백준에서는 시간초과가 아니라 틀렸다고 나올까요? */ while (mhp > 0) { mhp -= atk; if (mhp <= 0) break; hhp -= matk; if (hhp <= 0) return false; } /* answer */ // long long div = mhp / atk + (mhp % atk ? 1 : 0); // long long cnt = div - 1; // hhp -= cnt * matk; } else { heal = v[i].h; addatk = v[i].a; atk += addatk; hhp = min(mid, hhp + heal); } /* answer */ // if (hhp <= 0) return false; } return true; }
안녕하세요 큰돌님 5-B번 문제를 제출하면 세그먼트 오류가 발생하는데 원인을 찾지 못하겠습니다... 강사님 코드와 크게 다른거같지 않은데 어디서 에러가 발생하는 걸까요? 항상 친절한 답변 감사드립니다:) http://boj.kr/fe751c8b73634cdf80e4de8ab6fefcce
void doSomething(int students_scores[3]) int main() {... doSomething(students_scores) } 이 함수 내 파라미터에 궁금증이생겼는 데요. 기본적으로 c언어를 공부를 했는 데, 저는 메인 함수내부에 배열을 넘겨 받는 함수를 만들때는 포인터로 선언을 해서 받았는 데, 해당 영상에서는 저렇게 해도 작동된다는 것을 보고, 조금 궁금한 점이 생겼습니다. doSomething함수의 파라미터도 포인터로 된다고 하셨는 데, 그럼 [3] 괄호안에 있는 숫자는 뭘의미하는 건가요?? int (*students_score)[3] 이것인가요??(int 형 자료를 가진 포인터 변수 3개) 조금 헷갈려서 질문 남깁니다. ps. 아 그리고 마지막으로 저런식으로도 사용하는 사람들이 좀 있는 편인가요??
안녕하세요 큰돌님, 코드를 작성 후 실행시켰을 때 오류가 나와 질문드립니다. 제가 작성한 코드는 맨 아래에 있으며, 큰돌님의 코드와 비교 시 어떤 점이 문제있는지를 찾지 못했습니다. 저 코드로 예제 입력시 값이 오류가 나옵니다. 어떤 부분이 오류가 나오는지 알 수 있을까요? 예제 입력 1 2 lo3za4 01 예제 출력 1 1 3 4 실제로 출력된 값 01 11 [작성한 코드] #include <bits/stdc++.h> using namespace std; int n; string s, ret; vector<string> v; void go() { while(true) { if(ret.size() && ret.front() == '0') ret.erase(ret.begin()); else break; } if(ret.size() == 0) ret = "0"; v.push_back(ret); ret = ""; } bool cmp(string a, string b) { if(a.size() == b.size()) return a < b; return a.size() < b.size(); } int main() { cin >> n; for(int i=0; i<n; i++) { cin >> s; ret = ""; for(int j=0; j<s.size(); j++) { if(s[i] < 65) ret += s[i]; else if(ret.size()) go(); } if(ret.size()) go(); } sort(v.begin(), v.end(), cmp); for(string i : v) cout << i << "\n"; return 0; }
안녕하세요. 오늘 결제해서 수강하게 된 어떤 부트캠프 백엔드 수강생입니다. 앞으로 있을 프로젝트 후 취준을 위해 지금부터 알고리즘공부 병행하려고 합니다. profile : { main lang : java, days left until project : 1 month, using Ide : intelliJ, pc : mac } 다름이 아니라, c++도 처음이고 vscode도 처음이라 기본세팅을 어떻게 할지 잘 모르겠는데요.. 일단 교안대로 terminal에서 vi로 저렇게 a.cpp 파일만들어서 #include <bits/stdc++.h> using namespace std; string a; int main() { cin >> a; cout << a << "\n"; return 0; } 잘 출력되는데, 이것 외에 다른 코드들을 작성해서 출력하려고 하면 어떻게 해야 할지 모르겠어요. 저의 vscode 아래에 첨부합니다. 저렇게 저장하려고 하면 에러뜨는 상황인데요, 혹시 경로가 잘못된걸까요? 어떻게 프로젝트를 열어야 하나요? 그리고 마지막으로 교안에 나온 저 명령어는 터미널에 치는 걸까요? 아니면 vscode에 쓰나요?
안녕하세요 강사님, prev, cost, real_cost 부분이 잘 이해가 되지 않습니다... ㅜ prev를 이전에 추가했을 친구수, cost를 이번에 추가할 친구수로 생각하고, real_cost가 진짜 추가한 친구수 라고 생각하면 될까요? 그래서 이전에 추가했을 친구수가 이번에 추가할 친구수보다 크거나 같다면, 이전에 이번보다 많은 친구를 추가했으니 더이상 추가할 필요가 없어서 0이 되는거고 작다면 새롭게 인원을 추가하면 되는 거로 생각했습니다. 이 부분이 잘 정리가 되지 않는거 같습니다 ㅜㅜ 부연 설명을 부탁드려도 될까요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 큰돌님 3-I 문제를 처음 접하고 나름 풀이를 했는데 잘못된 방향으로 간 것 같습니다. 저는 동시간에 갈 수 있는 모든 경우의 수를 visited와 vector인 vc에 저장했습니다. 하지만, 홀짝을 이용하진 못했고 visited와 벡터를 시간이 흐를 때 초기화해서 풀었습니다. 이렇게 풀었을 때 백준 질문 게시판의 반례들은 전부 통과되지만 실제 제출은 2%에서 "틀렸습니다"가 떴습니다.... 왜 틀린 걸까요? 그리고 제 접근처럼 배열과 벡터를 썼다가 지웠다를 반복하면 실행시간에 영향을 끼칠까요? 아래는 공유소스 링크입니다. http://boj.kr/a0eb20f66dc346558bd64e01a6ed9e96 감사합니다.