묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
맞은 문제에 대한 공부방법
항상 양질의 강의/컨텐츠를 지속적으로 제공해주셔서 정말 감사하다는 말씀을 먼저 드리고 싶습니다!다름이 아니라, 맞은 문제에 대한 공부 방법에 대한 공부방법을 질문드리고 싶어서 (질문 전에 먼저 검색해봤는데, 따로 질문글이 없는 것 같아) 게시판에 글을 쓰게 됐습니다. 현재 2주차까지 35문제 풀었고, 각 문제는 약 2시간내로 풀었는데, 해설강의를 어떻게 활용하면 좋을지(효율적일지) 강사님의 지혜를 구하고 싶습니다.맞은 문제라도 강의와 해설코드를 보면서 저와 다른 점을 공부하고 넘어가는 게 좋을지, 아니면 다음 주차 개념강의를 보고 다음 주차 문제를 한 문제라도 더 고민하고 푸는 게 좋을지 고민하고 있습니다.(현재 채용과정 중인 기업은 없고, 지원서를 넣은 기업도 없는 상황이라 시간 자체는 있는 상황입니다 ㅎㅎ ㅠ) 장마철인데 항상 건강하시길 바랍니다! :D
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1주차 문제로 연습하는 시간복잡도 Q3
1주차 문제로 연습하는 시간복잡도 Q3여기서 배열의 반씩 재귀호출하는 부분이 merge sort에서 반씩 나눴던 부분이랑 동일하다고 생각되는데, 왜 머지소트에선 해당 부분이 logN이 나오고 여기선 2n-1이 나오는건가요?
-
해결됨자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
임시반장문제 오답케이스를 모르겠습니다.
import java.util.*; public class Main { public static void main(String[] args) { Scanner kb = new Scanner(System.in); int N = kb.nextInt(); int [][] input = new int[N][5]; for (int i = 0; i < N; i++) { for (int j = 0; j < 5; j++) { input[i][j] = kb.nextInt(); } } int answer = solution(N, input); System.out.println(answer); kb.close(); } private static int solution(int N, int[][] grid) { int answer = -1; int max = -1; for (int stdnt = 0; stdnt < N; stdnt++) { int count = 0; for (int i = 0; i < 5; i++) { int classNum = grid[stdnt][i]; for (int j = 0; j < N; j++) { if ( grid[j][i] == classNum ) { count++; } } } if ( count > max) { max = count; answer = stdnt; } } return answer+1; } }테스트케이스 많이 넣어봤는데, 오답케이스를 못찾겠습니다.여러명일때 작은 번호 출력하는것도, 하고 여러가지 넣어봤는데 잘 안되네요 ㅠ
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-k 질문
안녕하세요 강사님."몇분 뒤에 구름이 뜰지" 라는 대목에서 거리라고 판단해서 한 방향으로 진행되는 bfs로 문제를 풀었습니다.2차원 배열이 각각 100으로 최대 10000의 시간복잡도라 해당 문제에서는 큰 문제가 없었는데요.만약 범위가 좀 크다면 큐를 사용한 bfs 탐색이 강사님 풀이보다 성능이 떨어질까요? http://boj.kr/a2429464a2434d418885752a322f7880
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-G 질문입니다.
안녕하세요 강사님.pair를 사용하지 않고 풀어보려고 했습니다.TC는 통과하는데 틀리다고 나오네요.피드백 가능할까요? http://boj.kr/9f1f4e5b3eed497997feb57514fe3bcf
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
4-나이차이 문제 질문드립니다
선생님 저는 입력받을 정수를 동적할당시켜 정수의 배열을 사용해서 정렬을 시키고 나이차이를 출력했는데 이때는 input.txt를 어떻게 사용하는지 잘 모르겠어서 질문드렸습니다! 참고로 제가 쓰는것은 visual studio 2022버전입니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-b질문입니다.
2-b질문입니다.1.2분 29초에 y가 가로이고 x가 세로라고 하셨는데 그걸 어떻게 알아요?2.사진에서 n이 10이고 m이 8로 받아져있는데요. 왜 y가 10까지 돌아야 하는데 왜 8에서 멈추나요?import sys sys.stdin = open('input.txt', 'r') from collections import deque testcase=int(input()) n,m,k=map(int,input().split()) # print(n,m,k) # grid=[list(map(int,input().split())) for _ in range(m)] grid2=[[0]*n for _ in range(m)] visited=[[0]*n for _ in range(m)] for _ in range(k): x,y=map(int,input().split()) grid2[y][x]=1 # for i in range(m): # print(grid2[i]) dxs=[-1,0,1,0] dys=[0,-1,0,1] Q=deque() def in_range(x,y): return 0<=x and 0<=y and x<n and y<n for y in range(n):#가로 for x in range(m):#세로 if grid2[y][x]==1: if visited[y][x]==0: Q.append((y,x)) visited[y][x] = 1 while Q: y,x=Q.popleft() for dx,dy in zip(dxs,dys): nx=dx+y ny=dy+x if not in_range(ny,nx): continue if visited[ny][nx]==1: continue if visited[ny][nx]==0 and grid2[ny][nx]==1: visited[ny][nx] =1 for i in range(m): print(visited[i])
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2 - D 입력질문드립니다.
안녕하세요.2583번 문제에서 예제가 왜5 7 3 0 2 4 4 1 1 2 5 4 0 6 2이렇게 받는지 잘 모르겠습니다ㅠㅠ그리고for(int i = 0; i < k; i++) { cin >> x1 >> y1 >> x2 >> y2; for(int x = x1; x < x2; x++) { for(int y = y1; y < y2; y++) { a[y][x] = 1; } } }cin 으로 x1 y1 x2 y2 받는 줄 아래에왜 x가 x2랑 엮이고 y가 y2랑 엮이는지 잘 모르겠습니다ㅠㅠ 문제 풀기전에 예제입력&예제출력이 왜 이렇게 나오나 먼저 좀 생각을 해보고 코드 작성하는데 한참을 들여다 봤는데 잘 이해가 안되니 도저히 감이 안와서 이렇게 여쭙니다.
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
이런방식으로 푸는게 더 깔끔한가요?
/* * 자신의 바로 앞 수보다 큰 수만 출력하는 프로그램을 작성하세요. 단, 첫 번째 수는 무조건 출력한다. */ function solution(integers:number[]): number[] { return integers.filter((int, index) => { if (index === 0) { return int; } if (int > integers[index - 1]) { return int; }; }); } console.log(solution([7,3,9,5,6,12]));
-
미해결입문자를 위한 코딩테스트 핵심(이론과 문제풀이) [Python]
기본코드가 어디있나요?
강의에서 보여주는 기본코드가 어디있나요?따라써야하는건가요?포함된 파이썬 파일에는 답이 다 작성되어있어서요...
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
13번 0점...
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. #include <iostream>int arr[10];int main(){ //freopen("input.txt.txt","rt",stdin); char num[101]; int i; int tmp; int max = 0; int Smax; scanf("%s", &num); for(i=0; num[i]!= '\0'; i++) { tmp = num[i] - 48; arr[tmp]++; } for(i=0; i<10; i++) { if(arr[i]>=max) { max = arr[i]; Smax = i; } } printf("%d\n",Smax); return 0;} 왜 빵점만 나오는 거죠? 어디가 틀린 건가요ㅠㅠ?
-
미해결코딩테스트 [ ALL IN ONE ]
[코테 적용] 반복문 강의에서
안녕하세요. [코테 적용] 반복문 강의에서 변수 Run하실때 오른쪽하단에 디버그 문양이 있는걸 누르시고 왼쪽상단에 변수에 대해 뜨는데 window에서 pycharm으로 해당 방법을 따라하고 싶은데 어떻게 해야 할까요?감사합니다.
-
해결됨입문자를 위한 코딩테스트 핵심(이론과 문제풀이) [Python]
두 수의 합 O(n) 문제에 관한 질문입니다.
강사님을 다른 곳에서 뵌 후에 이곳에서 뵈니 감회가 새롭습니다.코딩 테스트를 파이썬으로 치뤄보고자 파이썬을 열심히 공부 중입니다. 당연히 자바도 빼놓지 않겠습니다.두 수의 합 O(n) 문제에서 저는 이렇게 풀었는데, 강사님께서 푸신 것에 비해 시간복잡도가 어느정도 차이가 나는지 궁금합니다.다음은 해당 코드 블럭입니다.def solution(nums, target): answer = [0] * 2 num_dict = dict() for x in nums: num_dict[x] = target - x if x in num_dict.values(): answer[0] = x answer[1] = target - x return sorted(answer)감사합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
강의교안 30쪽 getline 질문이 있습니다.
string bufferflush;getline(cin, bufferflush);이 부분에서 질문이 있는데요. 이 부분을 제가 이해하기로는 cin을 수행할 때 \n부분 전까지만 입력을 받고 변수에 할당한 후 \n은 그대로 cin 입력 버퍼에 남기 때문에 저걸 없애기 위해서 string bufferflush를 선언한 후 getline(cin, bufferflush)를 수행한다고 이해가 되는데요. 제가 알기로는 cin.ignore()도 입력 버퍼를 한 개 지우는 역할을 한다고 들었는데 그냥 cin.ignore()로 대체하면 두 줄짜리 코드를 그냥 간단하게 한 줄로 끝낼 수 있는데 이게 더 효율적이지 않나 싶어서 질문을 드립니다.
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
시간과 점수 변수를 넘길 때 선언과 동시에 더한 값을 넘기게 되면 어떻게 되나요 ??
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. static void DFS(int level, int time, int score, Exam[] arr) {if(time > m) return; if(level == n) {if(time <= m) {answer = Math.max(answer, score);}}else {DFS(level+1, time+=arr[level].time, score+=arr[level].point, arr);DFS(level+1, time, score, arr);}} else 부분에 time+= arr[level].time 처럼 선언과 동시에 더한 값을 메소드에 넘기게 되면 time 값이 가장 마지막으로 선언 된 time 값으로 고정이 되어 이전 값으로 안 돌아오게 되나요 ?
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
22. 때때로 time limit
같은 코드인데, 한번은 array(배열)로, 한번은 vector로 두었습니다.array로 했을 때는 4번예제에서 time_limit이 났는데 vector로 했을 때는 다 success였습니다. 같은 경우엔 array가 더 빠른거 아닌가요? 왜 이러죠#include <iostream> #include <vector> int main(void) { int n, k, max, sum = 0; std::vector<int> tem(100001); scanf("%d %d", &n, &k); tem[0] = 0; for (int i = 1; i <= n; i++) { scanf("%d", &tem[i]); sum += tem[i]; if (i == k) max = sum; else if (i >= k) { sum -= tem[i - k]; if (sum > max) max = sum; } } printf("%d", max); return 0; }#include <iostream> int main(void) { int n, k, max, sum = 0; int tem[100001]; freopen("input.txt", "rd", stdin); scanf("%d %d", &n, &k); tem[0] = 0; for (int i = 1; i <= n; i++) { scanf("%d", &tem[i]); sum += tem[i]; if (i == k) max = sum; else if (i >= k) { sum -= tem[i - k]; if (sum > max) max = sum; } } printf("%d", max); return 0; }
-
해결됨자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
어떤 부분이 오답인지 궁금합니다
import java.io.*; public class Main { public int solution(int n) { int answer = 0, sum = 0, lt = 0; for (int rt = 0; rt <= n/2+1; rt++) { sum += rt; if (sum == n) answer++; while (sum >= n) { sum -= lt++; if (sum == n) answer++; } } return answer; } public static void main(String[] args) throws IOException { Main main = new Main(); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); System.out.print(main.solution(n)); } } 따로, n/2+1 크기만큼의 배열을 생성해주지 않는 풀이인데, 어느 부분이 잘못되서 오답처리가 되는 것인지 잘 모르겠습니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
pushback과 dy,dx 질문입니다.
안녕하세요.질문 하나가 있습니다.adj[0].push_back(1); adj[0].push_back(2); adj[0].push_back(3);만약 위 코드 처럼 push_back 해준다고 가정했을 때int dy[] = {-1,0,1,0}; int dx[] = {0,1,0,-1};위 dy dx코드를 해줄 필요가 없는건가요?연습할 때 .push_back(i)로 하다가 dfs bfs연습문제 풀 때 dy dx가 나와서 뭐지? 했습니다.어느 상황에서 맨위 코드블럭처럼 해줘야 하는지 아래 코드블럭처럼 하는지 잘 분간이 안되서 이렇게 질문드립니다.감사합니다. ps. 5 51 1 0 0 10 0 1 1 00 1 0 0 1이런식의 예제입력이 주어지면 push_back안 하고 dy dx만 해주면 되는걸까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-K 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요. 강사님.이런 느낌으로 팰린드롬 변환을 구현해봤습니다.사실 문자열 최대길이가 50이라서 시간복잡도 문제는 없을거라 생각하는데요.삽입을 사용안하고 풀어보려고 했는데 reverse도 결국 O(N)이라서 유의미한 차이는 없는거 같습니다.실제로 중간 삽입, reverse도 중간부분을 뒤집는거라 같은 시간복잡도가 예상되는데 맞을까요?http://boj.kr/6889e519af6742b9a6cda67803fbf013
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
섹션5 연속부분수열1 (Two Pointers Algorithm) 질문있습니다.
강사님이 작성해주신 코드를보면 for문안에 while문을 돌려서 시간복잡도가 O(n^2) 아닌가요?이렇게하면 시간복잡도가 O(n)이라서 아래의 코드가 더 좋은것 아닌가요?