inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

11. 미로의 최단거리 통로(BFS)

미해결

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

dis L이라는 변수를 따로둬 배열 없이 풀어봤습니다. 일단 채점 사이트에는 정답으로 나왔는데 이렇게 풀어도 되는지 궁금해서 여쭤봅니다 .. 미로가 막혀있다면 정답 직전까지 q.offer가 불가능해서 접근 불가능 하다고 생각 했습니다. 이럴 정답에 접근 불가니 -1를 리턴하면 된다고 생각했습니다. 더이상 누적되는 큐도 없으니 메소드도 끝난다고 생각 했습니다 . import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; class Pointer{ int x,y; public Pointer(int x, int y) { this.x = x; this.y = y; } } public class Main { static Scanner sc = new Scanner(System.in); static Main T = new Main(); static int[] dx = {-1, 0, 1, 0}; static int[] dy = {0, 1, 0, -1}; static int[][] miro; static int n; static int answer; public static void main(String[] args) { n = 7; miro = new int[n + 1][n + 1]; for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { miro[i][j] = sc.nextInt(); } } miro[1][1] = 1; answer = T.searchMiro(1, 1); System.out.println(answer); } private int searchMiro(int x, int y) { Queue<Pointer> q = new LinkedList(); q.offer(new Pointer(x, y)); int L = 0; while (!q.isEmpty()) { int size = q.size(); for (int i = 0; i <size ; i++) { Pointer poll = q.poll(); for (int z = 0; z < 4; z++) { int nx = poll.x + dx[z]; int ny = poll.y + dy[z]; // 접근 가능하다면 바로 리턴 if (nx == n && ny == n) {return L + 1;} if (nx >= 1 && ny >= 1 && nx <= n && ny <= n && miro[nx][ny] == 0) { miro[nx][ny] = 1; q.offer(new Pointer(nx,ny)); } } } L++; } return -1; } }

  • java
  • 코딩-테스트
아날로그티비 댓글 1 좋아요 0 조회수 236

메모리 단위 질문

해결됨

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

[코테 적용] 영상에 나오는 노션글들은 어디에서 볼 수 있나요?

해결됨

코딩테스트 [ ALL IN ONE ]

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. [코테 적용] 영상에 나오는 노션글들은 어디에서 볼 수 있나요? 올려주신 pdf파일에는 없는것같아서요!

  • python
  • 코딩-테스트
  • 알고리즘
cl1717177 댓글 2 좋아요 1 조회수 244

16472 고냥이 문제

해결됨

2주만에 통과하는 알고리즘 코딩테스트 (2024년)

선생님 강의 잘보고있습니다 강의에선 없지만 숙제로 있던 고냥이 문제를 풀어보다가 도저히 제코드의 문제를 모르겠어서 질문드립니다. 올려주신 정답코드와 비교해보면 arr.pop 을 하냐 안하냐 차인데 왜 센세처럼 마지막 원소를 빼줘야 하는지 잘 모르겠습니다 ㅠㅠㅠ 어떤 반례가 있는지 잘모르겠어서 의도를 이해못했습니다ㅠㅠ

  • python
  • 코딩-테스트
  • 알고리즘
2v2 댓글 1 좋아요 1 조회수 228

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

해결됨

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

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

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

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

6-C 질문있습니다

미해결

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

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

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

1090 완전탐색 체커문제 풀이 공유는 안해주시나요 ..

해결됨

2주만에 통과하는 알고리즘 코딩테스트 (2024년)

설명하시는것 까지는 이해가되는데 구현으로 어떻게 해야될지 감이 안잡혀서요 .. 혹시 강사님 풀이하신거 링크 없으실까요?

  • python
  • 코딩-테스트
  • 알고리즘
JoyNGain 댓글 2 좋아요 1 조회수 463

05_adtFileIO 프로젝트 문의

해결됨

독하게 C를 배운 사람을 위한 선형 자료구조

안녕하세요. 선생님! 에러는 아니고, 프로그램 완성도 측면에서 버그 발견하여 혹시몰라서 공유드립니다. 프로젝트이름: 05_adtFileIO 소스파일: singleList.c 함수명: AddNewNode, SearchListByName New(유저추가) > Search > offset 0의 유저로만 찾아지는 버그 수정방안 새로운 유저 추가 시, g_listCount로 offset 셋팅 검색 시, 캐싱된 데이터 조회(파일에 아직 저장 안한상황 대응)

  • c
  • 코딩-테스트
  • 알고리즘
  • vc++
전우형 댓글 2 좋아요 0 조회수 344

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 조회수 208

doubly linked list 질문입니다.

해결됨

코딩테스트 [ ALL IN ONE ]

안녕하세요. 수업을 듣다 질문 사항이 생겨서 이렇게 문의 남깁니다. doubly linked list로 구성된 ''' from collections import deque # deque 선언 q = deque() ''' 에서 'enqueue ' , 'dequeue '의 시간 복잡도가 O(1)인데, 중간에 데이터가 삽입되고 삭제 되는 경우도 시간 복잡도가 O(1)인가요?

  • python
  • 코딩-테스트
  • 알고리즘
칙칙폭폭 댓글 1 좋아요 1 조회수 167

[The Latest Login in 2020] datetime 계산 관련

해결됨

SQL 코딩테스트를 위한 첫 걸음

select user_id, max(time_stamp) as last_stamp from Logins where year(time_stamp) = 2020 group by user_id date type 인 time_stamp 컬럼을 2020년만 필터링 하기 위해서 year() 함수를 사용했습니다. [ 궁금한 사항 ] 이렇게 접근해도 올바른 풀이가 맞을까요?

  • sql
  • mysql
  • 코딩-테스트
전종훈 댓글 1 좋아요 1 조회수 295

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

해결됨

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

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

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

스택문제 백준 1874

해결됨

Do it! 알고리즘 코딩테스트 with JAVA

강의내용의 코드가 헷갈려서 아래내용대로 수정해보았는데 이렇게 해도 될까요 ? public static void main(String[] args) { Scanner sc = new Scanner(System. in ); int N = sc.nextInt(); // 수열의 개수 int A[] = new int[N]; // 수열을 저장할 배열 // 데이터 입력 for (int i = 0; i < N; i++) { A[i] = sc.nextInt(); } Stack<Integer> stack = new Stack<>(); StringBuffer bf = new StringBuffer(); // 연산 출력 저장 int num = 1; for (int i = 0; i < N; i++) { int su = A[i]; while (su >= num) { // 현재 수가 스택의 수와 같거나 큰 경우 stack.push(num++); bf.append("+\n"); } if (stack.isEmpty() || stack.peek() != su) { System. out .println("NO"); return; } stack.pop(); bf.append("-\n"); } System. out .println(bf.toString()); // 결과 출력 } }

  • java
  • 코딩-테스트
  • 알고리즘
Yunny J 댓글 1 좋아요 1 조회수 479

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

미해결

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 조회수 186

활용 DP 질문

해결됨

2주만에 통과하는 알고리즘 코딩테스트 (2024년)

선생님, 안녕하세요 다름이아니라 6강까지 꾸역꾸역 이해했다고 생각했는데 7강에서 막히네요 문제 1에서는 for문으로 변경할때 역순으로 dp를 채워주었는데 왜 문제 2냅색은 앞방향으로 for문을 도는건가요? 저는 6강에서 이해하기를 문제1, 문제2 모두 recursion을 통해 결국 맨 마지막 까지 도달한뒤 base condition을 통해 계산하면서 => 뒤에서 부터 계산하면서 dp를 채워준다고 생각했습니다 그리고 7강에서 recursion 대신에 for문을 통해 dp를 채워준다고 이해하고 강의를 보았는데요 문제1에 대해서는 for문을 역순으로 도는데 왜 문제2는 역순으로 돌지 않는지 잘 이해가 안갑니다. 둘의 차이가 뭔가요? 차이가 있다면 왜 6강에서는 둘다 똑같은 틀로 문제를 푼건가요? 정말 이해하고싶은데 어렵네요 ㅠㅠ

  • python
  • 코딩-테스트
  • 알고리즘
2v2 댓글 2 좋아요 2 조회수 461

안녕하세요. 코테 플랫폼 질문드립니다.

미해결

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

코드 제출하고 Submitting에서 넘어가지 않으면 시간초과인가요?

  • java
  • 코딩-테스트
mag1c 댓글 1 좋아요 0 조회수 300

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

주간 인기글