inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

6-F 그리디 질문입니다.

미해결

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

http://boj.kr/946c8f57d8884275ae800627eb01ada3 안녕하세요 강사님. 일단은 이 문제를 보고 이분탐색 방법이 딱히 떠오르지가 않아서 그냥 마음가는대로(?) 풀었습니다. 그런데, 게시판의 반례는 다 맞는 것 같은데 제출하면 바로 틀렸다고 떠서 그냥 잘못 풀었나 보다 하고 강사님 강의를 찾아보니 이진탐색과 그리디 방법 두 가지가 있더라구요! 혹시나 해서 그리디 부분을 보니 제가 그래도 근접은 했구나 생각이 들었는데, 아무리 생각해도 어디가 틀렸는지 정확히 모르겠어가지고 잠이 안옵니다 ㅠㅠ 강사님께서는 HP를 마지막에 +1 하셨는데, 저는 그냥 처음부터 생존하기 위해 필요한 HP 1을 안고 쭉쭉 계산하는 식으로 생각했습니다. 아무래도 이 부분이 틀린것 같다고 생각은 드는데 정확히 왜 틀린건지를 모르겠습니다 ㅠㅠ 한번만 도와주세요 흑흑..

  • c++
  • 코딩-테스트
남호은 댓글 3 좋아요 0 조회수 351

1-C 질문

미해결

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

안녕하세요 선생님 복습하면서 코드를 다시 짜보았습니다. 코드를 다 짜고 분명 맞는 코드라고 생각 되는 코드가 있는데 왜 안되는지 알 수 있을까요?? http://boj.kr/bb19d1d7a24e4a63ae40d2df911dbb51 답변 미리 감사드립니다!

  • c++
  • 코딩-테스트
jiiikkman 댓글 1 좋아요 0 조회수 254

질문드립니다!

미해결

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

http://boj.kr/9c2c43aa11a1499e9dca2322e2ed5c55 큰돌님 풀이를 보지 않고 이런식으로 구현을 해보았는데, public TC는 다 맞는데 어느 부분에서 틀린지 잘 모르겠습니다! 제가 미처 구현하지 못한 부분이 있을까요?

  • c++
  • 코딩-테스트
ollo20 댓글 1 좋아요 0 조회수 182

익명객체 생성자호출

미해결

홍정모의 따라하며 배우는 C++

안녕하세요! 15:40경입니다. 간단한 궁금증이 있는데 Monster mon1("Sanson", Position2D(0,1)); 교수님께서 위와같이 main 함수 내에, 매개변수에 있는 것들로 Monster 클래스의 mon1 의 생성자를 호출하셨습니다. Monster 클래스의 생성자는 아래와 같고, Monster(const std::string name_in, const Position2D & pos_in) : m_name(name_in), m_location(pos_in) {} 스트링 문자열과, Position2D 객체를 파라미터로 받는데요 Q) 이때 저 위에 있는 Monster mon1("Sanson", Position2D(0,1)); 의 Position2D(0,1) 는 익명객체이고 자신을 참조하는 레퍼런스 const Position2D & pos_in 에게 주소를 넘겨주고 생성자에 의해 private멤버 변수가 값복사에의한 초기화가 끝나는 즉시 Position2D(0,1) 는 사라진다는 설명이 적절할까요? 감사합니다

  • c++
Echapper4 댓글 1 좋아요 1 조회수 175

1-F 백준 런타임에러

미해결

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

안녕하세요 선생님 dev에서 출력까지 모두 확인하고 백준에 제출하였는데 런타임에러(Segfault)가 뜨네요. 왜 그런건지 알수있을까요?? http://boj.kr/909703751c8045c0af6d239464b65482

  • c++
  • 코딩-테스트
jiiikkman 댓글 1 좋아요 0 조회수 253

3-A 문제 질문있습니다

미해결

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

안녕하세요. 공부하다가 질문이 있어 글을 쓰게 되었습니다. 3-A 문제에 보면 ' 도시에 있는 치킨집 중에서 최대 M개를 고르고, 나머지 치킨집은 모두 폐업시켜야 한다. ' 이런 조건이 있는데요. 영상을 보면 무조건 M개를 고르고 M보다 작은 수는 고려하지 않고 코드를 짜셨더라고요. 무조건 M개 일 경우 최단 거리가 나와서 그 외 경우들은 무시하고 코드를 짜도 되는건가요?

  • c++
  • 코딩-테스트
리버 댓글 1 좋아요 0 조회수 271

1-D 다른방법으로 풀어봤는데 왜 틀렸는지 모르겠습니다.

해결됨

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

선생님 안녕하세요. Reverse가 아닌 다른방법으로 1-D를 풀어봤는데요. 왜 틀렸다고 하는지 모르겠습니다. 로컬에서 제가 생각한 케이스를 넣어봤을 때는 잘 되는데요. 제가 생각하지 못한 케이스가 있는걸까요? http://boj.kr/f4f4371560a5411ba03513a90129c3bd

  • c++
  • 코딩-테스트
google_user 댓글 1 좋아요 0 조회수 187

2-R 질문있씁니다.

미해결

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강사님, 안녕하세요!! 본 문제를 저는 bfs로 풀었습니다. 제 풀이를 돌렸을 떄 77%까지 가고 안되는데 무엇 떄문에 안되는 걸까요... http://boj.kr/1afed87142b944609ac3c01867aeaf8d

  • c++
  • 코딩-테스트
sangwoo8221 댓글 1 좋아요 0 조회수 145

메모리 단위 질문

해결됨

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

안녕하세요 큰돌님!메모리 관련 공부를 하다가 궁금한 게 있어서 작성하게 되었습니다.큰돌님께서 강의하실 때와 블로그에 512 MB= 512,000,000 Byte라고 하셨는데MB를 Byte로 바꿀 땐 2^20을 곱해야 한다고 알고 있었는데10^6으로 근사치를 구할 수 있는 것 같습니다.혹시 이렇게 근사치로 구할 수 있는 다른 단위가 있다면 알려주시면 감사하겠습니다!!

  • c++
  • 코딩-테스트
xodhks0929 댓글 1 좋아요 0 조회수 220

강의 swap 질문

미해결

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

안녕하세요 강사님. c++ 초보 학생입니다. 재귀함수로 만드는 순열 강의를 듣는 중에 3:18 전까지는 이해가 되나 3:18에서 코드를 보면 for 문에서 i =depth 즉 0으로 시작하므로 swap(v[0], v[0])이 된 이후에 makePermutation(3, 3, 1)이 실행되는 것 아닌가요? 강의 설명중 swap이 0,0 후에 1,0 그리고 2,0 까지 일어난다는 것이 코드상 이해되지 않습니다. 어째서일까요??

  • c++
  • 코딩-테스트
sp4503 댓글 1 좋아요 0 조회수 427

1-O 코드 질문입니다.

미해결

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

안녕하세요 큰돌님! 강의 재미있게 잘 듣고 있습니다 ㅎㅎ 1-O번을 혼자 풀어서 맞추긴 했는데... 큰돌님 풀이 방식이랑은 좀 다르기도 하고, while문을 중첩해서 쓴 게 시간복잡도 때문에 마음에 걸려서요. - 코드 : http://boj.kr/a5eb7d7c669c408882d3004546fb537d 저 같은 경우는 아래와 같은 방식으로 생각하고 구현하였습니다. 1. 입력범위를 먼저 보고 ( 1 <= n <= 10000) 2. 1, 11, 111, 1111을 제외하고는 맨 뒷자리가 1이 나오는 n의 값은 3, 7, 9 밖에 없다는 걸 깨달음 3. 나눗셈을 할때 나머지에 10을 곱해서 다음 자리수에 더해 다시 나눠서 계산하는 방식을 차용. 다시 말해 나눗셈을 할 때, 윗자리부터 몫과 나머지를 구하고, 나머지를 윗자리 몫을 구하고 남은 나누어지는 수에 더해서 다시 나누는 방식을 사용하기로 함. (배수이면 언젠간 나누어 떨어지므로) 4. 코드상으로 시간 복잡도는 좋지 않아보이지 않았지만, 주어진 범위내에서는 111...11 자리수가 20이 넘어가더라도 한번의 테스트 케이스에서 대략 20번만 수행하면 되므로 그대로 구현해보았음. 혹시 이런 경우에 테스트 케이스를 맞췄더라도, 시간 복잡도를 고려해서 더 나은 방법을 고민해보는게 좋을까요?

  • c++
  • 코딩-테스트
yudility 댓글 1 좋아요 0 조회수 198

Assignment Operator의 delete[]

미해결

홍정모의 따라하며 배우는 C++

안녕하세요 9.11 13:50 부근입니다 MyString& operator = (const MyString& source) { cout << "Assignment operator " << endl; if (this == &source) // prevent self-assignment return *this; delete[] m_data; m_length = source.m_length; if (source.m_data != nullptr) { m_data = new char[m_length]; for (int i = 0; i < m_length; ++i) m_data[i] = source.m_data[i]; } else m_data = nullptr; return *this; } 해당 코드는 클래스 MyString의 대입연산자 입니다. 가운데에 보시면 delete[] m_data; 가 보이실텐데 교수님이 m_data가 이미 메모리를 가지고있었을 수도 있다고 하시는데 그 어떤 증례도 떠오르지 않습니다. int main함수 내에서 { MyString copy = hello; cout << (int*)copy.m_data << endl; cout << copy.getString() << endl; } 다음과같이 copy가 그냥 여기서 처음 생기고 scope를 벗어나면 사라지는데 이 이전에 copy의 m_data가 메모리를 가지고 있었다고 하는 것이 납득이 되지 않아서 간단한 설명 부탁드리고싶습니다. 감사합니다. ++수정) 질문 작성 도중에 떠올랐는데 교수님이 말씀하신 케이스가 이미 옛적에 copy를 만들어서 쓰고있었지만 그 본 것을 버리고 새로 다른 데에 쓰려고 새로 인스턴스를 대입해준다는 말씀이셨을까요? (--> 따라서 delete함으로써 전에 쓰던 주소를 계속 이어씀으로써 발생할 수 있는 UB를 방지??) (전체코드) #include <iostream> #include <cassert> using namespace std; class MyString { //private: public: char* m_data = nullptr; int m_length = 0; public: MyString(const char* source = "") { assert(source); m_length = std::strlen(source) + 1; m_data = new char[m_length]; for (int i = 0; i < m_length; ++i) m_data[i] = source[i]; m_data[m_length - 1] = '\0'; } MyString(const MyString& source) { cout << "Copy constructor " << endl; m_length = source.m_length; if (source.m_data != nullptr) { m_data = new char[m_length]; for (int i = 0; i < m_length; ++i) m_data[i] = source.m_data[i]; } else m_data = nullptr; } MyString& operator = (const MyString& source) { cout << "Assignment operator " << endl; if (this == &source) // prevent self-assignment return *this; delete[] m_data; m_length = source.m_length; if (source.m_data != nullptr) { m_data = new char[m_length]; for (int i = 0; i < m_length; ++i) m_data[i] = source.m_data[i]; } else m_data = nullptr; return *this; } ~MyString() { delete[] m_data; } char* getString() { return m_data; } int getLength() { return m_length; } }; int main() { MyString hello("Hello"); cout << (int*)hello.m_data << endl; cout << hello.getString() << endl; { MyString copy = hello; cout << (int*)copy.m_data << endl; cout << copy.getString() << endl; } cout << hello.getString() << endl; return 0; }

  • c++
Echapper4 댓글 1 좋아요 1 조회수 216

1-D 다른방법 질문있습니다!

해결됨

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

안녕하세요 선생님! 처음 문제 풀때 reverse가 기억이 안나서 이렇게 해서 풀어봤는데 devc++에서는 제대로 나오는데 백준에서는 Segmentation fault 오류가 뜨는데 제가 혹시 메모리 인덱스를 잘못 접근한건지 아니면 다른 오류인지 궁금합니다! http://boj.kr/89002741edf34694a3293bfee22b2e0d

  • c++
  • 코딩-테스트
정채환 댓글 1 좋아요 0 조회수 231

3-L 'a'와 'A'일때의 차이

미해결

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

항상 질 좋은 답변 감사드립니다. 문제코드: https://www.acmicpc.net/source/75348635 질문은 다음과 같습니다. if (alpha[board[ny][nx] - 'a'] != 0) continue; alpha[board[ny][nx] - 'a'] = 1; dfs(ny, nx, cnt + 1); alpha[board[ny][nx] - 'a'] = 0; 에서 'a'일때는 정답처리가 안되지만 'A'일때는 정답처리가 되는 이유가 궁금합니다. 제가 생각하기에는 대문자의 아스키코드가 'a'보다 작기때문에 음수가 돼서 정답처리가 안되는 것으로 생각하는데 이렇게 생각하면 컴파일 자체가 안되어야 한다고 생각하기때문에 질문드립니다. 감사합니다. 김지성 올림

  • c++
  • 코딩-테스트
김지성 댓글 1 좋아요 0 조회수 165

마우스 좌우 버튼을 동시에 눌렀을 때의 원의 위치

미해결

홍정모의 게임 만들기 연습 문제 패키지

위 사진은 마우스 양쪽 버튼을 동시에 눌렀을 때 원의 위치입니다. 버튼을 하나씩 눌렀을 때는 커서 위치에 원이 잘 그려지는데, 동시에 누르는 순서와는 상관 없이 누르기만 하면 원이 위와 같이 그려집니다. 캡쳐되지 않았으나 커서는 노란 원 위에 있는 상태이고, mouse_pos 역시 커서 위치대로 출력됩니다. 그런데 빨간 원의 위치가 조금 이상해서 질문 드립니다. 제가 보기에는 빨간 원이(마우스 커서~원점)의 거리의 두 배만큼 원점으로부터 떨어져 있는 것으로 보이는데요, if문의 분기 조건은 다르지만 안의 코드가 translate(mouse_pos)로 동일한데도 이런 차이가 나는 이유가 뭔가요?

  • c++
  • 객체지향
  • OpenGL
train1998 댓글 1 좋아요 0 조회수 474

6-C 질문있습니다

미해결

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 항상 강의 잘보고 있습니다! http://boj.kr/abba975d09e94f2ca5ed26ec25a96886 문제를 이런식으로 풀었는데 rets = min(rets,min)으로 했을 경우에는 틀리고 , rets = min으로 했을 경우에는 정답 처리가 됩니다. 혹시 min으로 하면 반례가 발생하는 경우가 있을까요?

  • c++
  • 코딩-테스트
김승호 댓글 1 좋아요 0 조회수 193

sort에서 쓰는 cmp함수에 질문이 있습니다.

미해결

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

http://boj.kr/8d65e8a10d10408285809b81032c7b17 안녕하세요 강사님. 좋은 수업 잘 듣고 있습니다. 제가 이 코드에서 처럼 sort에 사용되는 cmp를 정의했는데, 제 컴퓨터에서는 잘 돌아가는데 boj에서는 runtime error(segmentation fault)가 발생합니다. 그래서 cmp를 이렇게 바꾸면 bool cmp(pair<int, int> p1, pair<int, int> p2) { if (p1.second == p2.second) return p1.first < p2.first; return p1.second < p2.second; } 잘 돌아갑니다. 왜 첨부한 링크의 cmp처럼 코드를 쓰면 segmentation fault가 발생하는지 궁금합니다. 감사합니다.

  • c++
  • 코딩-테스트
mu_ 댓글 1 좋아요 0 조회수 206

플로이드 워셜 알고리즘 질문있습니다.

해결됨

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

안녕하세요 강사님, 강의 잘 듣고 있습니다. 플로이드 워셜의 반복문 순서에 대해 질문드리고 싶습니다. 흔히 경유지 노드를 k로 두고 (k, i, j) 순으로 반복문을 구현하는데, k가 i와 j 사이에 들어가면 안 되는 명쾌한 이유가 무엇인가요?

  • c++
  • 코딩-테스트
lego0313 댓글 1 좋아요 0 조회수 382

벡터 선언할 때 질문이 있습니다

미해결

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

안녕하세요 큰돌님! http://boj.kr/fedde0e4bf064dc4b05484aa6d98848e 기존에 있던 main 함수에서 선언하는 for (int i = 1; i < 4; i++) v.push_back(i); 이것을 주석처리하고 전역에서 vector<int> v{1, 2, 3}; 이렇게 하는 게 더 간단해보여서 해봤는데 오류가 뜹니다.. 이런 오류가 뜨는 이유가 궁금합니다 원래는 run code 버튼 눌러서 실행했었는데 c++ % g++ -std=c++11 -Wall a.cpp -o test.out로 컴파일 하니까 해결됐습니다.. 제 c++ 버전이 14라서 그런 것 같은데 전역에서 벡터를 vector<int> v{1,2,3}; 이렇게 선언하려면 무조건 컴파일을 c++ % g++ -std=c++11 -Wall a.cpp -o test.out 이렇게 해야할까요..? c++ % g++ -std=c++14 -Wall a.cpp -o test.out 했을때도 실행이 안 됐었습니다 참고로 맥북m1입니다!

  • c++
  • 코딩-테스트
xodhks0929 댓글 1 좋아요 0 조회수 185

43번 배열 크기 문제

미해결

it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비

문제에는 첫째 줄에 자연수 N(1≤N≤1,000)이라고 나왔습니다만 채점 프로그램의 in3~in5까지의 n 입력값은 1000을 넘어갑니다 (100,000) a의 배열의 사이즈는 1001(1000개)인데 n을 100,000으로 받아도 문제 없이 정답이 잘 나옵니다 배열의 사이즈를 넘어가는데 정답이 잘 나오는 이유를 모르겠습니다

  • c++
  • 코딩-테스트
시시포스맨 댓글 1 좋아요 0 조회수 291

인기 태그

인프런 TOP Writers

주간 인기글