추가아이디어 - 그리디 min으로 5와 2횟수 비교할 필요없이 5가 최솟값을 보장 while문으로 계속해서 나누는방법 for 문으로 5 25 125로 나우는방법이아닌 5로 나눈값을 계속해서 나누는 형태(중간에 나눈값은 따로 더함) C++ http://boj.kr/9f743d2fbc00459bba06f2559896e037 #include<bits/stdc++.h> using namespace std; int n, a; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n; for(int i = 0; i < n; i++){ cin >> a; int ret5 = 0; for(int j = 5; j <= a; j *= 5){ ret5 += a / j; } cout << ret5 << "\n"; } return 0; } python ( while 적용 ) http://boj.kr/c031aa4a62fd4690b2d17271266f87c6 import sys input = sys.stdin.readline for _ in range(int(input())): a = int(input()) ret = 0 while a >= 5: a //= 5 ret += a print(ret)
[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
19:30 부분 flag |= (1 << 2); 에서 flag |부분이 하나의 변수이름으로 봐야되나요? 아니면 단순히 flag와 (1 << 2)를 | 계산하기 위해서 저위치에 |를 두었다고 봐야되나요? 하나의 변수 이름이라면 나중에 무적+변이를 생략해서 flag | 로 입력해도 문제가 없나요?
안녕하세요! 항상 강의 잘 듣고 있습니다. 3-J와 3-K에서 플러드필을 배우면서 플러드필을 '직전까지 하던 내용을 임시 큐에 저장하고 다음 dfs/bfs시 임시큐의 내용부터 이어서 작업하게 함으로서 새롭게 dfs/bfs를 수행하여 전체를 훑는 것보다 탐색하는 경우의 수를 줄이는 방법'이라고 이해하였습니다. 더 자세히 알고싶어 플러드필을 검색해보니 일반적인 예시는 큰돌님처럼 임시큐에 저장하는 것이 아니라 저희가 int 반환형 dfs와 유사하게 쓰고 있더라구요? 지난 강의에서였나 확실치는 않지만 플러드필이 아니라고 하는 사람도 있지만 이것은 플러드필이 맞다? 라고 하셨던 것 같은 기억이 있습니다. 일단 잘 써먹는게 중요하다라는 생각이지만 정리하자면 일반적으로 사람들이 말하는 int 반환형 dfs 같은 것이 기본적인 플러드필이고, 임시큐를 활용하는 것은 그냥 플러드필에 임시큐를 활용했다 정도로만 알면 될까요? 감사합니다.
안녕하세요 강사님! 해당 문제와는 관련이 없지만 궁금해서 질문을 남깁니다! 'c++ split'을 검색하였더니 sstream을 include 하여 istringstream과 getline을 이용하여 vec에 구분자를 기준으로 저장되는 것으로 보이는데, 이는 강사님이 교안에서 만드신 split 함수와 어떤 차이가 있는 것인가요? string str = "java c++ c python"; istringstream ss(str); string stringBuffer; vector<string> vec; while(getline(ss, stringBuffer, ' ')){ vec.push_back(stringBuffer); }
안녕하세요! 강의 너무 잘 듣고 있습니다! 해설강의를 보고 풀이법은 이해가 갔습니다. 하지만 제가 기존에 짜던 코드가 시간초과가 발생하는데, 이는 어떠한 원인으로 생기는 것인가요? check 배열로 이미 방문한 것은 큐에 넣지 않으면서 최대한 시간을 단축했다고 생각했는데.... 봐주시면 감사하겠습니다! http://boj.kr/0730ff444ed64c5caac066c698d858e0
friend로 함수 처리를 하시면서 하신 말씀이 불편함을 조금더 없애기 위하여 파라미터의 getCents()를 안통하게 하기위해 friend로 함수 처리를 하면된다고 하시는데 friend로 처리를 하나 안하나 똑같이 작동하며 아래 출력 코드에서 고친것이 하나도 없으신데 getCents()를 안통한다고 하신것이 이해가 안가 질문을 드립니다 처음에는 getCents()를 쓰는것이 코드가 길어보이고 귀찮으니까 코드를 줄이기위해 getCents()를 제거하기위해 하신줄 알았습니다. operator + 함수 내부의 return 코드를 return Cents(c1 + c2); 처럼요.
Vcpkg를 이용해서 opengl, glew, glfw3 설치(20.4 참고) 위 글을 보면 20.4를 참고하여 설치하라는 것 같은대요. 20.4가 어디에 있는지 무엇을 참고 해야하는지 모르겠습니다. 유튜브를 통해 c / c++을 듣고 api를 듣는 도중 해당 강의를 알게 되어 해당 강의를 우선적으로 듣고 api를 들어보는게 좋을 것 같아서 구매를 했는대요. 20.4 / 20.5 / 20.6 참고하라는 말이 있는대 어디를 들어가야 참고할 수 있는지를 모르겠습니다. 알려주시면 감사하겠습니다. ㅜㅠ
http://boj.kr/2542b28a9bec4124a70ea89129f2293c 선생님 코드처럼 string(1, a[y][x]) 이런 식으로 문자열로 변환하면 (( ( ))( )( )) 이런 식으로 문자열이 깨져서 to_string(a[y][x])로 바꿔서 통과한 상태입니다. 제 코드에서 string(1, a[y][x])이 작동하지 않는 이유가 무엇인지 궁금합니다.
안녕하시렵니까? 강의 재미있게 듣고 있습니다. 선생님 강의를 수강하고, 백준 잔디 채우는 일에 빠져 열심히 문제를 풀고 있네요! 하지만, 4주차 F번째인 1062번째 가르침에서 고난을 마주하게 되었습니다ㅠㅠ 선생님의 해설 강의를 보고 로직은 이해한거 같은데, 저의 방식대로 풀어보려하니 도무지 어디가 틀린 것인지 모르겠습니다. http://boj.kr/f915fd53647443ee9dac1ff8741a5b5d 문제의 조건 중 a, n, t, i, c가 무조건 포함되기 때문에, 이를 제외하고 나온 알파벳의 모든 경우의 수를 체크하여 문제를 풀면 조건 시간 내에 해결할 수 있지 않을까하는 아이디어로 문제를 풀어보았습니다. 계속 고민을 해보아도 어떤 반례가 있는지 도무지 생각이 안나 이렇게 질문을 올리게 되었습니다. 바쁘시겠지만 한번 봐주시면 큰 도움이 될 듯합니다!!
안녕하세요, 이번 달에 강의를 듣기 시작한 학생입니다. 현재 알고리즘에 대한 지식이 있고 이전부터 코딩테스트 문제들을 조금씩 풀어본 상태입니다. 강사님의 강의를 아직 많이 들어보진 않았지만, 초반부를 듣다보니 궁금한 점이 생겨 이렇게 여쭤봅니다. 강사님께서 강의를 하시는 문제들이 백준에서 어느정도 난이도인지 궁금합니다... 보통 대기업의 코딩테스트를 보려면 '골드 몇 이상, 실버 몇 이상, 플레 몇 이상'이라고 하는데, 제가 수강한 강의 앞부분은 대체로 쉬워서인지 대기업을 준비하는 입장의 난이도는 아니라고 생각합니다... 혹시 뒷부분에 있는 문제 난이도가 어느정도인지 알 수 있을 까요?? 감사합니다.
안녕하세요 강사님 강의 잘 듣고 있습니다! http://boj.kr/7f875032bef04870b36d219af2266f5e 홀수 개수인 알파벳이 2개 이상이면 바로 쏘리 한수 출력하며 종료 2개 이상인 알파벳은 해당 개수의 절반만큼 순서대로 붙여나감 바로 위의 문자를 뒤집어 놓은 문자열 임시 저장 홀수 개수인 알파벳이 존재한다면 붙여놓은 문자열(2번 순서)에 해당 알파벳 추가 뒤집어 놓은 문자열 추가 이 방식으로 진행한 결과, 예제는 모두 다 통과하였지만 오답으로 결과가 나왔습니다. 어떠한 점이 잘못되었는지 알려주시면 감사하겠습니다!
안녕하세요, 양질의 강의에 감사하며 수강하고 있습니다. 강의 1:40쯤 getCents()함수를 2개 만드는데요, int getCents() const { return m_cents; } int& getCents() { return m_cents; } 아래 참조형 반환 함수는 왜 만든 건가요? 이번 강의를 끝까지 봤는데도 어떤 용도로 사용되었는지 잘 모르겠습니다. (강의에 따르면 <클래스 외부 함수에서 클래스의 private멤버 변수에 접근하기 위한 방법>을 생각하면서 나온 듯한데.. 잘 모르겠습니다.)
#include <bits/stdc++.h> using namespace std; typedef long long ll; int main() { ios::sync_with_stdio(false); cin.tie(NULL); string s = "123"; s[0]++; cout << s << "\n"; // 223 return 0; } 이 부분에서요 typedef long long ll; ios::sync_with_stdio(false); cin.tie(NULL); 이 세줄이 이해가 되지 않아요 지우고 실행해도 결과값은 똑같던데 무엇인지 알려주세요!
[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
안녕하세요, 추석 잘 보내고 계신가요? 다름이 아니라, 여쭤볼 것이 있어서, 제가 UE4 C++을 코딩하면서 여러 습관들이 있는데, 그 중 하나가 제가 거의 포인터가 아닌 참조를 선호하고, Data를 Write가 아닌 Read일때 const 참조로 도배를 해버리는데, 심지어 불가피하게 포인터를 사용할 경우 예를들어, Human* const human = 객체 주소; 이렇게 const 를 중간에 박아서, 어셈블리어를 까볼때 참조형이랑 같게 한다든지 const Human* const human = 객체 주소; 이런식으로 하면 const Human& human = 객체; 와 동의어라고 생각하여 const Human* const human; 이런식으로 사용합니다. 첫번째 질문 ] 함수의 매개변수 / 함수의 반환값을 받을 때 데이터가 순전히 Read용도로 사용할 경우 그냥 습관적으로 const 자료형& 을 사용합니다. 이런 습관이 맞는지에 대해서 여쭤봅니다. 함수 내부에 지역 변수를 리턴하는 값을 const 참조형으로 받는게 좋은지 일반적으로 Value로 받는게 좋은지에 대해서 여쭤봅니다. 물론 함수 지역 변수를 리턴하는 것을 그냥 참조로 받으면 해당 줄이 끝나면 리턴을 하는 함수의 CallStack 에서 해당 함수 프레임이 pop 되면서 사라지기 때문에 VC가 잡아주어 빨간줄이 나겠지만, 그냥 참조가 아닌 저는 const 참조로 받는게 습관입니다. vector<Human> GetHumanVector() { vector<Human> HumanVector = '동적할당 해서 배열 값 세팅 전부하고' return HumanVector; // 지역 변수 동적 배열을 리턴 } int main() { const vector<Human>& HumanVec = GetHumanVector(); // 1번째 경우 : 저의 스타일 const vector<Human> HumanVec = GetHumanVector(); // 2번째 경우 : 값으로 Receive 하는 것 } 1번째 경우와 2번째 경우, 저는 1번째 경우를 사용하는데 2번째 경우로 저렇게 받아버리면 값 복사가 되면서 GetHumanVector(); 이 const vector<Human> HumanVec 전달 해줄때 순간적으로 메모리 사용량이 2배가 되지 않을 까 생각이 되어 무조건 참조로 받는 것이 옳다라고 생각합니다. 만약에 저 배열의 크기가 500MB라고 가정을 해봤을때 2번째 경우처럼 값으로 받을 경우 컴파일러가 해당 줄을 실행을하고 값을 전달을 할때 1GB가 메모리가 사용될 것이다. 라고 어디서 선생님이었나 책이었나 본 것 같아서 메모리 효율적 사용이라는 이러한 당위성으로 인해 저는 습관적으로 저렇게 사용하는데 혹시 제 기억이 틀린건지 적어놓은 공책이 있었는데 없어지고 검색을 해봐도 딱히 비슷한 예제가 안올라와서 R.V.O 리턴 값 최적화 정도로 함수 리턴할떄 값으로 리턴해도 된다. 이 정도 내용 밖에 없네요 1) const vector<Human>& HumanVec = : const 참조로 받는 게 좋을지 2) const vector<Human> HumanVec = : const로 받는게 좋을지 선생님의 의견은 어떠신지요 두번째 질문 ] 혹시 1)을 사용할때 간헐적으로 버그가 날 수 있나요? 저는 없다고 보는데 일단 참조는 컴파일 타임에 생성과 동시에 초기화가 되고, 일단 const로 받아서 빌드 돌릴때는 문제가 없는데 런타임때 버그가 날 확률이 조금이라도 있을까요???