inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

3-J 질문

해결됨

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

글자가 이상하게 올라갔네요 다시 질문올립니다. 강의를 듣고 아래 코드처럼 다시 한번 풀어봤습니다. main함수 안에서 풀었을 때는 통과가 되었는데 bfs를 밖으로 빼서 풀었더니 틀리게 되었습니다. 틀린 원인이 bfs를 밖으로 빼서 그런건지 아니면 제가 확인하지 못한 로직이 문제가 있는지 모르겠습니다. http://boj.kr/4f01272dd1a042cd96cb875dbb4bb1e0 링크도 잘못올려서 다시 수정해서 올렸습니다!

  • c++
  • 코딩-테스트
firdoo 댓글 2 좋아요 0 조회수 255

split() 시간복잡도

해결됨

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

유사한 질문이 있어서 답변을 보고 시간복잡도를 개선할 수 있는 split()코드를 짜봤는데요. 하지만 제가 짠 split() 코드에 생각못한 맹점이 있는지, 이렇게 사용을 해도 되는지 궁금해서 질문올립니다. 시간초과 코드 http://boj.kr/2ea82a9bda6a40f9a88765151f190df9 통과 코드 http://boj.kr/583e73a687c145d3b354c1ecca0ad631 이 문제에서는 다른 질문에서 말씀해주신대로 그냥 공백을 제외하고 숫자를 세는 방법이 더 좋고, 저도 그렇게 풀긴했지만 split()으로 한 번 풀어보고 싶어서 도전하다가 이렇게 만들어봤습니다.

  • c++
  • 코딩-테스트
김상민 댓글 4 좋아요 0 조회수 938

3-J 질문

미해결

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

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강의를 듣고 아래 코드처럼 다시 한번 풀어봤습니다.main함수 안에서 풀었을 때는 통과가 되었는데 bfs를 밖으로 빼서 풀었더니 틀리게 되었습니다.틀린 원인이 bfs를 밖으로 빼서 그런건지 아니면 제가 확인하지 못한 로직이 문제가 있는지 모르겠습니다. #include <bits/stdc++.h> using namespace std; #define y1 aaaa int n, m, x1, y1, x2, y2, visited[304][304], cnt; char a[304][304]; string s; const int dy[] = {-1, 0, 1, 0}; const int dx[] = {0, 1, 0, -1}; void bfs(int sy, int sx, int ey, int ex){ visited[sy][sx] = 1; queue<int> q; q.push(1000*sy + sx); while(a[ey][ex] != '0'){ cnt++; queue<int> temp; while(q.size()){ int y = q.front()/1000; int x = q.front()%1000; q.pop(); for(int i=0; i<4; i++){ int ny = y+dy[i]; int nx = x+dx[i]; if(ny<0 || ny>=n || nx<0 || nx>=m || visited[ny][nx]) continue; visited[ny][nx] = cnt; if(a[ny][nx] == '0'){ //0을 만나면 q에 0이 없을때까지 계속 돈다. q.push(1000*ny + nx); } else{ //1이나 목적지#을 만나면 0으로 바꾸고 그 위치를 temp에 기억해둔다. a[ny][nx] = '0'; temp.push(1000*ny + nx); } } } //q에 0이 없어지면 temp에 저장해두었던 1의 위치들을 q에 다시 넣어서 //0에서 했던 과정들을 다시 반복해준다. q = temp; } } int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> n >> m; cin >> x1 >> y1 >> x2 >> y2; x1--, y1--, x2--, y2--; for(int i=0; i<n; i++){ for(int j=0; j<m; j++){ cin >> a[i][j]; } } bfs(y1, x1, y2, x2); cout << visited[y2][x2] << '\n'; return 0; }

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

6-A_ 2792 보석상자 강의 질문

해결됨

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

안녕하세요 큰돌님 강의를 듣다가 질문이 생겼습니다! 큰돌님께서 3분쯤에 질투심을 4로 하면 조건 충족을 못하신다고 하셨는데 보석을 못받는 학생이 생겨도 되므로 질투심 4일때는 조건은 만족하지만 최소값은 아니여서 정답이 아닌걸로 생각했습니다. 아래 그림을 봐주시면 질투심이 2일 때 학생수가 6명이 필요하므로 check함수의 n(학생수)>=num(질투심)을 충족하지 못한다고 생각했습니다. 제가 잘못 생각한 것일까요..?

  • c++
  • 코딩-테스트
이효민 댓글 2 좋아요 1 조회수 355

1-G 출력 관련 질문입니다.

미해결

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

선생님이 보여주신 코드를 제 IDE에 옮기고 실행을 시켜봤습니다. 그리고 예시 입력을 넣어보면 3 a*d abcd anestonestod facebookDA DA 이렇게 출력이 되면서 마지막 NE가 나오지 않고 프로그램이 종료가 안 되고 계속 돌아가네요. 그런데 답 제출을 해보면 맞았다고는 나옵니다. 왜 이러는걸까요..?

  • c++
  • 코딩-테스트
비가싫어요 댓글 1 좋아요 0 조회수 194

1-K 반례 알 수 있을까요...

해결됨

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

http://boj.kr/fc8456e934554241bd6ece53be433384 나름 테스트 케이스도 통과를 하고 의심되는 케이스를 모두 돌려보았는데 에러가 납니다... 왜 일까요..

  • c++
  • 코딩-테스트
박승한 댓글 1 좋아요 1 조회수 241

dfs 탐색 순서

해결됨

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

안녕하세요 큰돌님 dfs 공부하다가 탐색 순서가 헷갈려서 질문 드립니다. 제가 아래에 코드 링크를 첨부했는데요. 아래 그림에서 탐색 순서가 왜 저렇게 나오는지 모르겠습니다 ㅜㅜ http://boj.kr/f89c319ec14048a2a042c5a4c7027d60

  • c++
  • 코딩-테스트
이효민 댓글 1 좋아요 0 조회수 259

1-F 질문이 있습니다 선생님!

미해결

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

안녕하세요 1-F 문제 풀 때 질문이 있어서 글 남깁니다. 대문자, 소문자를 판단할 때 isAlpha 라는 함수가 있던데 이런걸 실제 코딩 테스트에선 사용하지 않는 것이 좋은건가요? 이걸 활용해서 풀어보니 제 IDE에선 입출력에 맞게 잘 통과가 되는데 백준에선 오답이라고 나와서요!

  • c++
  • 코딩-테스트
비가싫어요 댓글 1 좋아요 0 조회수 251

5-G 런타임 에러

해결됨

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

http://boj.kr/26f14293f96747a4b1f788ac70d98df2 http://boj.kr/8f84f821f3014eef85b9d0fbc4cedcde 런타임 에러가 나오는데 이유를 모르겠습니다. 큰돌님과 다른 부분은 소수 판별 부분과 while문에 조건을 넣었다는 것 밖에는 없는 것 같은데 이상하네요..

  • c++
  • 코딩-테스트
김상민 댓글 1 좋아요 1 조회수 262

3-D_4179 불! 틀렸습니다..

미해결

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

테스트 예제는 맞게 나오는데 어디가 백준에서 11% 정도 되면 틀렸다고 뜸니다.. 어디가 문제일까요?ㅠㅠ 2시간째 보고 있는데 못찾겠습니다.. http://boj.kr/c6e3f5dbdd7649928958e43c0ed48238

  • c++
  • 코딩-테스트
이효민 댓글 1 좋아요 0 조회수 228

2-G_ 2910 빈도 정렬 변수

미해결

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

안녕하세요 큰돌님! 저는 처음 입력을 받을때 그냥 a라는 int를 통해 입력을 받았고 결과도 잘 나왔습니다. 전체 코드 링크: http://boj.kr/9b27f7b5e206448296677cba46683e86 int main (){ cin >> n >> m; for(int i=0; i<n; i++){ cin >> a; mp[a]++; if(mp_first[a]==0) mp_first[a]=i+1; } 그런데 큰돌님은 여기서 왜 굳이 입력 받으실때 a[1004] 배열로 받으셨는지 궁금합니다! int n, c, a[1004]; int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> n >> c; for(int i = 0; i < n; i++){ cin >> a[i];mp[a[i]]++; if(mp_first[a[i]] == 0) mp_first[a[i]] = i + 1; }

  • c++
  • 코딩-테스트
이효민 댓글 1 좋아요 0 조회수 349

8 펜윅트리

미해결

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

펜윅트리 설명이 너무 부족한 것 같습니다. 인덱스랑 인덱스에 담긴값이랑 어떤 관계로 어떻게 찾아간다 이런부분이 있어야되는데 그냥 숫자만 얘기하시면서 숫자가 어떤걸 해당한다 이런내용도 없고 강의자료도 이미 아는사람이 이해할법하게 금방금방 넘어가구요. 이전강의랑 너무 다르게 진행하네요;

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

5-T 질문있습니다.

해결됨

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

0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 0 0 0 0 0 0 0 2 3 3 0 0 0 0 0 0 4 4 3 1 0 0 0 0 0 0 4 4 4 4 0 0 0 0 0 0 0 4 4 4 0 0 0 0 0 0 0 0 4 4 0 0 0 0 0 0 0 4 4 4 0 0 0 0 0 0 0 4 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 예제 2번을 입력했을때 저는 위와 같은 결과가 나오도록 코드를 짰고 통과했습니다. 다만 처음에 제가 문제를 대충 보고, "4개의 변이 모두 갖춰진 1x1 정사각형" 의 개수를 세는 것인줄 알고 위의 결과를 어떻게 수정해야하나 고민했었는데요. 좋은 방법이 딱히 떠오르지 않아서 질문드립니다. 요약 : 기존 문제는 4개의 변이 아닌 4개의 꼭지점만 드래곤 커브에 관계가 있는 경우를 셌지만 이게 아니라 4개의 변을 갖춘 정사각형을 센다면 어떻게 해야할까 입니다. 가장 아래 있는 위가 뚫린 사각형을 보면, 행열 인덱스를 구분선이 아니라 셀에 두더라도.. 구분이 안 될 것 같습니다.

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

3-K 시간초과 관련 질문있습니다!

미해결

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

안녕하세요 선생님! 2가지 질문드릴게 있습니다! 제가 만든 로직이 왜 시간초과인지 잘 모르겠고 시간초과를 어떤식으로 해결해야할지 잘 모르겠습니다... http://boj.kr/e32a513c49c94b99b253e5daedafde8c #include <iostream> #include <queue> using namespace std; const int dy[4] = { -1,1,0,0 }; const int dx[4] = { 0,0,-1,1 }; int R, C, sy, sx, ey, ex, ret; int visited[1501][1501]; char adj[1501][1501]; queue<pair<int, int>> q; queue<pair<int, int>> temp; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> R >> C; sy = -1; for (int y = 0; y < R; y++) for (int x = 0; x < C; x++) { cin >> adj[y][x]; if (adj[y][x] == 'L') { if (sy == -1) { sy = y; sx = x; } else { ey = y; ex = x; } } } q.push({ sy,sx }); visited[sy][sx] = 1; while (true) { // 백조끼리 만나나 못만나나 확인 while (q.size()) { int y = q.front().first; int x = q.front().second; q.pop(); for (int i = 0; i < 4; i++) { int ny = y + dy[i]; int nx = x + dx[i]; if (ny < 0 || ny >= R || nx < 0 || nx >= C) continue; if (ny == ey && nx == ex) { cout << ret; return 0; } if (visited[ny][nx]) continue; if (adj[ny][nx] == 'X') continue; visited[ny][nx] = visited[y][x]; q.push({ ny,nx }); } } // 빙판 녹이기 for (int y = 0; y < R; y++) for (int x = 0; x < C; x++) if (adj[y][x] == 'X') { for (int i = 0; i < 4; i++) { int ny = y + dy[i]; int nx = x + dx[i]; if (ny < 0 || ny >= R || nx < 0 || nx >= C) continue; if (adj[ny][nx] == '.' || adj[ny][nx] == 'L') { if (visited[ny][nx] != 0) { q.push({ y,x }); visited[y][x] = visited[ny][nx]; } temp.push({ y,x }); break; } } } while (temp.size()) { adj[temp.front().first][temp.front().second] = '.'; temp.pop(); } ret++; } return 0; }

  • c++
  • 코딩-테스트
요가인 댓글 1 좋아요 0 조회수 357

8-U 다른풀이 질문

미해결

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

안녕하세요 큰돌 선생님 강의 감사합니다.. 해당 문제를 처음에 보고 dp로 풀 수 있을것 같아서 접근했는데 원하는 답이 나오지 않아 선생님 강의를 보고 다익스트라로 해결하였습니다. 근데 혹시 이 문제 dp로는 해결할 수 없을까요? http://boj.kr/b2b9e324cd1644e7a5edb8caf23830aa 처음 dp로 해결하려던 코드입니다. 사실 예제 2번 부터 답이 틀려서 완전 틀린 코드이지만 어디가 틀렸는지 잘 모르겠습니다. dp의 매개변수로는 y좌표, x좌표, 그리고 d라는 이전에 왔던 방향을 뜻하는 매개변수를 넣었습니다. 현재의 값이 상하좌우 어디에서 온건지에 따라 최적의 값이 달라지기에 d를 추가하였습니다. dp배열의 초기값은 -1로 초기화했고, 또한 방문여부를 해결하기 위해서 visited배열을 만들어 해결하였습니다.

  • c++
  • 코딩-테스트
이명운 댓글 1 좋아요 0 조회수 189

1-G 이왜틀..

해결됨

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

http://boj.kr/7a58b316a27d4759a0374f44dba24267 질문을 너무 많이해서 죄송합니다... 강의를 보기전에 작성한 것인데.. 이게 왜 틀렸는지 모르겠습니다. 선생님 알고리즘과 유사한 것 같고 반례도 잡은 것 같은데.. 다음부터는 딴 짓 안하고 substr 쓰겠습니다..

  • c++
  • 코딩-테스트
박승한 댓글 1 좋아요 0 조회수 357

예제코드

미해결

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

예제 코드는 어디서 다운 받아볼 수 있을까요 ?

  • c++
  • 객체지향
  • OpenGL
kcj3054 댓글 2 좋아요 1 조회수 542

1-F 질문있습니다.

해결됨

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

http://boj.kr/1b398d90c42f47da868c6e70fe49c92a 안녕하세요.선생님 이해가 되지 않는 부분이 있어 문의드립니다. 제가 올린 코드로 "Baekjoon Online Judge" 입력을 넣으면 "Onrxwbba Bayvar W*(오류문자)qtr"이 반환됩니다. 그런데 제가 로직 대로 테스트를 해보니 u는 h로 변환이 되는 것이 맞는 것 같습니다. (28번쨰 줄 test 다음) 왜 안되는 것인지 알 수 있을까요? string은 char과 다른 무언가가 있나요..? (int로 해결해서 푸니 되는 걸 보니 overflow 관련 된거 같긴 한데 이해가 가지 않아 질문드립니다.)

  • c++
  • 코딩-테스트
박승한 댓글 1 좋아요 0 조회수 315

참조에 의한 호출 질문합니다.

미해결

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

선생님의 코드를 기반으로, struct를 사용하지 않고 구현하려고 합니다. move 함수의 인자로 배열을 참조로 전달하고자 했습니다. void _move(int arr[24][24]) { int temp[24][24]; for(int i = 0; i < n; i++){ int c = -1, d = 0; for(int j = 0; j < n; j++){ if(arr[i][j] == 0) continue; if(d && arr[i][j] == temp[i][c]) temp[i][c] *= 2, d = 0; else temp[i][++c] = arr[i][j], d = 1; } for(c++; c < n; c++) temp[i][c] = 0; } memcpy(arr, temp, sizeof(arr)); } 이런 식으로 코드를 짜봤는데 memcpy 에서 에러가 발생합니다. 참조에 의한 호출로 인해 에러가 발생한 걸까요? 이 에러를 어떻게 해결할 수 있을까요?

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

1-D 질문있습니다.

미해결

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

안녕하세요 큰돌님! 수업 내용대로 다시 풀이해서 제출했는데 컴파일 에러가 떠서 질문드립니다ㅠ.ㅠ reverse함수의 B앞에 공백을 없애니 컴파일 에러는 사라졌는데, 혹시 오류가 난 이유를 알 수 있을까요...? #include <bits/stdc++.h> using namespace std; string A, B; int result; int main(){ cin >> A ; B = A; //reverse는 원본배열에 영향을 주므로 미리 B에 넣어서 reverse하기 reverse(B.begin(), B.end()); if(A == B) result = 1; else result = 0; cout << result << "\n"; return 0; }

  • c++
  • 코딩-테스트
행복해꿀벌 댓글 1 좋아요 0 조회수 323

인기 태그

인프런 TOP Writers

주간 인기글