inflearn logo
강의

Course

Instructor

Coding Test Practice Test (with C++): For Large Companies

3. Square drawing code explanation (Dynamic: DP)

6강 3번 정사각형 그리키 코드 질문 드립니다.

242

ccik16532633

1 asked

0

안녕하세요 선생님의 코드 설명을 듣고 6강 3번 코드를 구현했습니다. 그리고 제가 코드를 구현한 것에 선생님의 코드를 참고하여 코드를 조금 수정했습니다.

visual studio에서는 정상적으로 정답이 출력이 되는데, 채점 사이트에서는 계속 오류가 출력됩니다. 그래서 제가 모든 테스트를 visual studio에서 돌려봤는데, 모두 정답이 출력됨에도 채점 사이트에서는 예상치 못한 오답이 출력되거나, 아예 답이 출력되지 않는 문제가 생깁니다.

 

띄어쓰기가 없는 입력을 한글자씩 숫자로 받기 위해서 scanf("%1d", &board[i][j]) 를 사용했습니다.

제 생각에는 scanf를 사용해서 이런 문제가 발생한 것 같은데, 아무리 찾아봐도 이유를 모르겠습니다ㅠㅠ

 

왜 그런지 알 수 있을까요? 답변 부탁드립니다! 감사합니다.

 

아래는 제가 구현한 코드입니다.

 

#include <bits/stdc++.h>

using namespace std;

int main() {

ios_base::sync_with_stdio(false);

freopen("input.txt", "rt", stdin);

int n, m;

cin >> n >> m;

vector < vector <int> > board(n, vector <int>(m, 0));

vector < vector <int> > dy(n, vector <int>(m, 0));

vector <int> answer(min(n, m) + 5, 0); // 0번부터 사용, 0 만나면 break;

for (int i = 0; i < n; i++) {

for (int j = 0; j < m; j++) {

scanf("%1d", &board[i][j]);

if (board[i][j] == 0) continue; // 0이면 그냥 넘기기

if (i >= 1 && j >= 1) { // 경계선 밖으로 나가지 않고, board[i][j]==1이라면

dy[i][j] = min(dy[i - 1][j - 1], min(dy[i - 1][j], dy[i][j - 1])) + 1;

}

else { // i가 0이거나 j가 0일때는 i-1, j-1이 경계에서 벗어나므로 그대로 입력

dy[i][j] = board[i][j];

}

}

}

for (int i = 0; i < n; i++) {

for (int j = 0; j < m; j++) {

for (int k = 1; k <= dy[i][j]; k++) { // k크기 이하인 정사각형 개수 세기

answer[k]++;

}

}

}

for (int i = 1;; i++) {

if (answer[i] == 0) break;

cout << i << " " << answer[i] << endl;

}

return 0;

}

C++ 코테 준비 같이 해요!

Answer 1

0

codingcamp

안녕하세요^^

답변이 늦어서 죄송합니다. 제가 보기에도 scanf를 이 채점사이트가 받아들이지 않는 것 같습니다. 저처럼 스트링으로 읽어서 처리를 해야 할 것 같습니다.

조합을 구할때 algorithm 함수 next_permutation 사용 가능 여부

0

457

1

최악의 경우 연산 질문이 있습니다.

0

411

1

로컬 환경과 다르게 오답이라고 나와서 문의 드립니다.

0

302

1

1-5 효율적인 공부 dy를 시간(N)으로 하는 풀이 질문

0

320

1

반복수와 시간초 계산을 어떻게 하나요??

0

333

1

왜 DP로 풀어야하는지 궁금합니다

0

242

1

선생님 안녕하세요. 다른 풀이에 대한 질문이 있습니다.

0

223

1

문제 해결방법에 대한 질문이 있습니다.

0

245

0

바둑대회 코딩 질문

0

270

1

6분 11초에서 dis [0][][]3차원 격자판이있는데요. 격자판안에 숫자는 문제에 없던데 어떻게 구해지는건가요?

0

200

0

실전모의고사 5회 1번 패턴찾기 질문있습니다.

0

220

1

전역변수관련 질문입니다.

0

255

1

5-1 패턴찾기 문제 질문드립니다.

0

218

1

오렌지 나무 문제 질문드립니다

0

310

1

코드 한번 봐주시면 감사하겠습니다!

0

175

1

코드 한번 봐주시면 감사하겠습니다!

0

234

1

코드 한번 봐주시면 감사하겠습니다!

0

198

1

시작점의 ch

0

204

1

vector에서 질문이 있습니다~!

0

235

1

그대로 따라했는데 시간 초과가 나왔습니다

0

161

1

2회 모의고사 4번 숲속의 기사 코드 질문이 있습니다.

0

288

1

질문있습니다.

0

209

1

이렇게 풀면 반례가 어떻게되나요?

0

245

1

1회 1번 공통 문자열 문제 설명 보충하시면 더 좋을 것 같습니다!

0

221

1