inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

그리디, 라인스위핑 질문있습니다 :)

해결됨

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

안녕하세요 선생님 🙂 그리디랑 라인스위핑 문제를 다시 풀어보고있는데요, 문제마다 앞에서부터 정렬할지, 뒤에서부터 정렬할지 정확하게 판단이 서지를 않고 있습니다. 조언해주신다면 정말 도움이 많이 될 것 같습니다..!! 항상 감사합니다 :)

  • c++
  • 코딩-테스트
한유태 댓글 2 좋아요 0 조회수 102

노션 공유 안 됨

미해결

코딩테스트 [ ALL IN ONE ]

안녕하세요. 구글 폼으로 10월 14일 화요일 저녁 9시쯤, 10월 16일 오전 9시 좀 넘어서 구글 폼으로 이메일 2번 보냈는데 아직 노션 공유가 안됩니다! 이메일은 아이디@gmail.com 으로 해놨습니다. 확인 부탁드리겠습니다!

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

2-T 질문있습니다!

해결됨

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

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 선생님, 2-T 접근방법에 대해 질문있습니다! 문제를 읽고 우선 queue나 stack으로 풀어야겠다는 생각은 들었는데, 해당 문제가 우측으로 더 큰항목이 있는지 비교(input과 특정 항목을 비교)하는 문제이기 때문에, queue로 구현하면 queue의 front에 가장 큰 값이 들어올 경우, 이후 항목에서 오큰수를 부여할 수 있는 수열들이 들어오더라도 queue를 pop하지 못하고, pop할 수 있는 항목들을 queue를 순회해서 찾는다고 하면 시간복잡도가 O(N^2)으로 커져버리니까 스택을 사용해야겠다! 라는 사고에 따라 스택을 사용하기로 결정하면 되나요? 또 한가지 질문이 있습니다..!! 정답 배열로 정수를 출력하는 문제라고 가정하면, int배열을 사용하여 푸는 것과 벡터<int> v 에 푸시하여 사용하는 것 어떤 것이 유리한지 궁금합니다!

  • c++
  • 코딩-테스트
이정현 댓글 2 좋아요 0 조회수 127

List 생성할때

미해결

김영한의 실전 자바 - 중급 2편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요! 문제와 풀이를 해보다 문득 궁금해졌는데, 혹시 ArrayList 생성할때 List<Integer> list = new ArrayList<>(); ArrayList<Integer> list = new ArrayList<>(); 두개의 차이가 있을까요 ..?

  • java
  • 객체지향
  • 코딩-테스트
  • 알고리즘
혜진 댓글 2 좋아요 1 조회수 109

tsp함수에서 (visited | (1 << i))

해결됨

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

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 강의잘 듣고 있습니다. 다름이 아니라 코드 중에 잘 이해가 가지 않는 부분이 있어서 질문드립니다. ret = min(ret, tsmp(i, visited | (1 << i)) + dist[here][i]);에서 visited | (1 << i)는 i를 기준으로 탐색하지 않는 곳을 확인 하기 위해서 필요한 코드인가요? ex) tsp(0, 1)이고 i = 1일때, ret = min(최대, tsp(1, 1 | (1 << 1), + dist[0][1]) 이 됩니다 여기서 tsp(1, 1 | (1 << 1)은 0, 1번째를 탐색했고 다시 1번째를 기준으로 2, 3을 탐색하는 것일까요? 0, 1을 탐색하는 이유는 1 | (1 << 1) -> 0001 | 0010 -> 0011이고 이는 0번째와 1번째를 확인했음을 의미하는 거 맞을까요? 그리고 2번을 기준으로 나머지 탐색을 하지 않은 도시(3, 4)를 탐색하는 것이구요. 위의 내용이 맞다면, 해당 코드에 대한 이해는 했는데 솔직히 말하면 제가 visited | (1 << i)라는 코드를 떠올리지는 못할 것 같습니다... 어떻게 하면 떠올릴 수 있을까요? 아직은 문제풀이를 많이 하지 않았으니까 그냥 외우면 되는 걸까요? ㅠㅠ

  • c++
  • 코딩-테스트
김라영 댓글 2 좋아요 0 조회수 168

5-H 질문있습니다 :)

해결됨

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

안녕하세요 선생님 🙂 다시 풀다보니 아래와 같은 풀이가 나왔는데요, 테스트케이스는 전부 올바른데 어디가 잘못된 것인지 모르겠어서 질문드립니다 ㅠㅠ 완전탐색을 이용하였습니다. http://boj.kr/4da9822932e3463aad4614f9fd3ab7db

  • c++
  • 코딩-테스트
한유태 댓글 2 좋아요 0 조회수 126

그룹 단어 체커 - 백준 1316번 관련 문의드립니다.

해결됨

카카오 코테 6주 합격! 실전 파이썬 코딩테스트

N = int(input()) words = [ input() for _ in range(N) ] ans = 0 for word in words: prev = word[0] before = [] isGroup = True for i in range(len(word)): if word[i] != prev: before.append(prev) if word[i] in before: isGroup = False break if isGroup: print(word) ans += 1 print(ans 이게 수업으로 제공하셨던 정답 코드인데, 오답 코드가 아닌가 해서 여쭤봅니다. prev 변수가 갱신이 되지않고 계속해서 그룹여부를 체크하는데, 이 부분이 잘못 된 것이 아닌가 싶습니다. 예를 들어 abcb라는 문자열의 경우에서도 그룹단어가 아니어야하는데 그룹단어로 검출되는 로직인 것 같습니다. 제가 그룹단어에 대해 잘못 이해한 걸까요?

  • 코딩-테스트
  • 알고리즘
  • 소프트웨어-설계
  • data-structure
wonu 댓글 1 좋아요 0 조회수 185

2-Q 시간초과 질문있습니다!

미해결

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

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요! 이번에 2-Q문제를 푸는데, 로직과 출력은 문제없는것 같은데 시간 초과가 나와서 어느 부분때문에 시간 초과가 나온지 너무 궁금합니다. http://boj.kr/0d1b70e1393b4e239c54738af690e44e 항상 좋은 강의 감사합니다!

  • c++
  • 코딩-테스트
댓글 3 좋아요 0 조회수 126

3-J 주난의 난

미해결

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

http://boj.kr/33a1d8de2da14b3490eaa1b3effe36c0 안녕하세요 강사님, 이런식으로 작성해보았는데 코드 리뷰 부탁드려도 될까요??

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

3-p 질문 있습니다.

해결됨

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

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 선생님 저도 선생님의 생각처럼 코드를 이렇게 작성하면 되겠구나 라는 생각을 했습니다. 하지만 결국 코드가 생각처럼 구현 되지 않았습니다. 이코드에서 제 생각이 뭐가 틀렸고 어떤 부분이 미숙했던 걸까요? ㅜㅜ 코드 사고 과정 1. 전체 맵에서 조합으로 씨앗을 심고 visited 처리 2. 3개 의visited 에서 위 아래 로 꽃이 펴지기 3. 그중에서 합이 제일 작은거 출력 하기 #include <bits/stdc++.h> using namespace std; bool visited[101][101]; int n,a[101][101], ret=987654321; const int dy[] = {-1, 0 , 1, 0}; const int dx[] = {0 , 1, 0 , -1}; vector<pair<int, int>> v; int solve(){ int sum = 0; for(int i =1; i < n; i++){ for(int j =1; j < n; j++){ if(visited[i][j]){ sum += a[i][j]; for(int i = 0; i < 4; i++){ int ny = i + dy[i]; int nx = j + dx[i]; if(ny < 0 || nx < 0 || ny >= n || nx >= n || visited[ny][nx]) { return 987654321; }; visited[ny][nx] = 1; sum += a[ny][nx]; } } } } return sum; } int main(){ ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); cin >> n; for(int i = 0; i < n; i++){ for(int j = 0; j < n; j++){ cin >> a[i][j]; if(i >=1 && j >=1) v.push_back({i,j}); } } for(int i =1; i < n; i++){ for(int j =1; j < i; j++){ for(int k =1; k <j; k++){ visited[v[i].first][v[i].second] = 1; visited[v[j].first][v[j].second] = 1; visited[v[k].first][v[k].second] = 1; ret = min(ret, solve()); memset(visited, 0,sizeof(visited)); // visited[v[i].first][v[i].second] = 0; // visited[v[j].first][v[j].second] = 0; // visited[v[k].first][v[k].second] = 0; } } } cout << ret << "\n"; return 0; }

  • c++
  • 코딩-테스트
안창완 댓글 1 좋아요 0 조회수 73

4-F 1062번 문제 답안코드에서 이해가 가지 않는 부분이 있습니다.

미해결

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

int go(int index, int k, int mask) { if (k < 0) return 0; if (index == 26) return count(mask); int ret = go(index+1, k-1, mask | (1 << index)); if (index != 'a'-'a' && index != 'n'-'a' && index != 't'-'a' && index != 'i'-'a' && index != 'c'-'a') { ret = max(ret, go(index+1, k, mask)); } return ret; } 답안에서 go 함수의 기저사례 처리 부분이 이해가 가지 않습니다. if (k < 0) return 0; if (index == 26) return count(mask); 이렇게 k < 0 일때는 0을 리턴해주고 index==26일때 읽을 수 있는 단어갯수를 리턴해주고 있는데요, 문제의 조건이 K개의 글자를 가르쳤을때 읽을 수 있는 단어의 갯수의 최대값을 구하는 것인데 위와 같이 index==26 일때 count(mask)를 리턴해주면 k개를 모두 고르지 않은, 예를 들어 k-2만을 고른, 상태일때 읽을 수 있는 단어를 리턴해주게 되지 않나요? 저는 그래서 if(k==0) return count(mask); if(index == 26 && k > 0 ) return 0; 이렇게 k==0일때 (즉, k가지를 모두 골랐을때) count(mask)로 읽을 수 있는 단어의 갯수를 리턴해주고 index가 끝까지 갔음에도 불구하고 k가 아직 0이 안되었을 경우에는 k개의 글자를 가르치지 못한경우이므로 0을 리턴하게 해주었는데 이렇게 하니 틀렸다고 나오네요. 왜 이렇게 하면 안되는것인지, 그리고 왜 큰돌님께서 작성해주신 답안대로 해야되는지 이해가 가지 않아서 이렇게 질문드립니다. 답변해주시면 감사하겠습니다

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

3-K 시간초과 질문입니다

해결됨

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

영상 보기전에 문제를 먼저 풀어보았는데 로직 arr에 L 하나! 좌표를 p_y, p_x 담기 반복 { 한번 반복될때 마다 ans++ del_y, del_x 두 queue를 만들고 2중 for문 돌면서 빙산깍습니다 만약 빙산"X" 라면 del_y, del_x 에 push 합니다 2중 for문이 끝나면 del_y, del_x에 있는 좌표들을 "." 로 수정합니다 맵 bfs 돌면서 L 2개가 만날수 있는지 체크합니다 방문배열 초기화! 만날수 있다면 ans 변수 출력 } http://boj.kr/e5a6ee722f5b467ea793402242eb25f0 2% 시간초과가 뜨는데 어떻게 최적화를 해야할까요..

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

3-I 응용 질문있습니다 :)

해결됨

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

안녕하세요 선생님 🙂 이 문제에 숨바꼭질 2번의 가장 빠른 시간으로 동생을 찾는 방법의 수와 숨바꼭질 4번의 이동 경로를 출력하는 방법을 넣어보고 싶어서 응용을 해봤습니다. http://boj.kr/140dd82426b947a59d51672a9bda4d0a 가장 빠른 시간으로 동생을 찾는 방법의 수를 출력하는 로직이 올바르게 짜여있는 것인지 궁금합니다. int prv[2][500004]; for (int i = K; i != N; i = prv[cnt%2][i]) { vec.push_back(i); //cnt--; } vec.push_back(N); reverse(vec.begin(), vec.end()); for (const auto& v : vec) { cout << v << " "; } prv배열을 2차원으로 했을 때, 1, 10을 입력하면 올바른 값이 나오지만 5, 17과 17, 5는 출력 자체가 되지 않습니다. prv배열을 1차원으로 했을 때는 5, 17과 17, 5는 출력이 되지만(5, 17만 올바른 값 출력) 1, 10은 출력 자체가 되지 않습니다. 혹시나 해서 for문에 cnt--를 넣어봤지만, 제대로 출력되던 1, 10조차 출력 자체가 되지 않았습니다. 이유와 해결방법이 궁금합니다. 17 -> 16, 15, 14, 15 5 -> 6, 8, 11, 15 위의 경우처럼 중복되는 경로가 있는 경우는 17 16 15까지만 출력이 됩니다. 14가 출력되지 않는 이유는 16 뒤에 출력되는 15가 첫번째 방문하는 15가 아닌 마지막 15를 방문해서 그런걸로 이해했는데 제대로 이해한게 맞을까요?

  • c++
  • 코딩-테스트
한유태 댓글 2 좋아요 0 조회수 119

3-I 질문있습니다 :)

해결됨

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

안녕하세요 선생님 🙂 헷갈리는 부분이 있어서 질문 드립니다. http://boj.kr/4218885d4f8c48ae84582162f1d262f0 55번째 줄 while 문 안의 아래 if문을 사용하는 이유를 모르겠습니다. if (visited[cnt % 2][K]) { flag = true; break; } /* 17 -> 16, 15, 14, 15 5 -> 6, 8, 11, 15 */ 수빈이가 동생이 방문할 곳을 미리 방문할 경우에 왔다갔다 하는 부분을 구현한 것이라고 설명해주셨는데요, 로직은 이해가 됩니다. if (nx == K) { flag = true; break; } /* 17 -> 16, 15, 14, 15 5 -> 6, 8, 11, 15 */ 하지만, 위의 (17, 5)라는 입력 값만 생각했을 때는 78번째 줄의 nx = K일 경우에 반복문을 빠져나가는 로직으로도 충분히 정답을 도출해낼 수 있기 때문에, 55번째 줄의 조건이 필요한 이유를 모르겠습니다. 혹시 제가 놓치고 있는 개념이나 반례가 있을까요? 이러한 경우가 있을지는 모르겠지만 17 -> 16 -> 15 -> 14 -> 15 -> 16 -> 15같이 15를 3번 왔다갔다 해야하는 경우가 있다면, 55번째 줄과 78번째 줄 모두 정답을 도출해낼 수 없습니다. 이건 너무 많이 간거죠..?

  • c++
  • 코딩-테스트
한유태 댓글 1 좋아요 0 조회수 116

섹션 9 Dynamic Programming (동적 계획법) 최대부분증가수열

미해결

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

안녕하세요, 최대부분증가수열을 수강한 뒤에 백준에서 유사한 문제를 발견해서 풀었는데 https://www.acmicpc.net/problem/11053 강의에서 배운 그대로 해당 코드를 제출했더니 틀렸다는 답변을 받았습니다.. 예제 입력은 맞게 나오는데 다른 테스트 케이스에서 틀린 것 같습니다.. 해당 문제에서 놓친 부분이 있을까요..? N = int(input()) arr = list(map(int, input().split())) arr.insert(0,0) dy = [0]*(N+1) dy[1] = 1 res=0 for i in range(2, N+1): max=0 for j in range(i-1, 0, -1): if arr[i] > arr[j] and dy[j]>max: max = dy[j] dy[i] = max+1 if dy[i]>res: res = dy[i] print(res)

  • python
  • 코딩-테스트
김민경 댓글 2 좋아요 0 조회수 137

4-J 질문있습니다.

미해결

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

http://boj.kr/d4a41da7d56b4acfa374613ed7723eeb 비트마스킹을 사용하지않고 무식하게 풀어보았는데 vscode에서는 계속해서 segmentation fault 오류가 나오고 백준에서는 메모리 초과가 뜹니다. 이렇게는 해결이 어려울까요?

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

1-L 재귀함수 질문이에요

해결됨

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

http://boj.kr/3bb8f4f305654583be23c4a1f1aac037 코드가 거의 큰돌님이 작성해주신거랑 로직이 비슷한데 왜 제가 작성한 코드는 시간초과가 발생하는지 모르겠습니다.

  • c++
  • 코딩-테스트
hahahl 댓글 3 좋아요 0 조회수 171

7-X 질문있습니다

해결됨

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

int go(int here, int yamyam, int capacity){ if(here == m) return 0; int &ret = dp[here][yamyam][capacity]; if(ret) return ret; ret = max(ret, go(here + 1, yamyam, c)); // <--- 이부분 for(int i = 0; i < n; i++){ bool isbeforeYAM = (1 << i) & yamyam; bool isYAMCAN = (capacity - a[i]) >= 0; if(!isbeforeYAM && isYAMCAN)ret = max(ret, go(here, yamyam | (1 << i), capacity - a[i]) + 1); } return ret; } 이 go라는 메소드에서 ret = max(ret, go(here + 1, yamyam, c)); 이 이해가 가지 않습니다. 다음 가방으로 넘어가는데 왜 현재의 (가방, 보석, 용량) 에 값을 저장하나요?

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

2-h 질문있습니다

미해결

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

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. https://www.acmicpc.net/submit/4659/85159031 안녕하세요. 선생님 문제를 푸는 와중에 예시 답안은 맞는데 제출하면 틀렸다고 하는데 어떤 부분이 틀렸는지 잘 모르겠습니다 ㅠㅠ

  • c++
  • 코딩-테스트
안창완 댓글 3 좋아요 0 조회수 90

3-D 질문있습니다 :)

해결됨

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

안녕하세요 선생님 🙂 오랜만에 질문드리는 것 같습니다 ㅎㅎ 사실 이 문제에서 모르는 부분이 있는 것은 아니지만, 별거 아닌 실수로 인해서 발생한 부분에 의문이 생겨서 질문 드립니다. 실수로 visited배열을 전체 초기화가 아닌 54 * 54만큼만 INF로 초기화시켜주었습니다. 테스트케이스는 4 * 4 배열인데요, 실수를 했어도 테스트케이스의 범위는 지켰기 때문에 결과 값이 정상적으로 나와야 한다고 생각합니다. 하지만, 테스트케이스의 결과 값이 "IMPOSSIBLE"로 출력이 됩니다. 이유가 뭘까요..?? http://boj.kr/b731d2b778284e37b9aa54fb079a30ba

  • c++
  • 코딩-테스트
한유태 댓글 2 좋아요 0 조회수 111

인기 태그

인프런 TOP Writers

주간 인기글