inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

스택 질문

미해결

그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)

여기 두번째 출력이 왜 4, 3, 인가요?? 1, 2가 나와야 하는거 아닌가요...?ㅠㅠㅠ 제가 이해를 잘못했나요ㅜㅜ

  • 알고리즘
고도윤 댓글 1 좋아요 1 조회수 152

백준11659 구간합 런타임 에러

미해결

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

하루코딩님 안녕하세요, 열심히 강의 들으면서 공부중입니다 항상 감사드려요 public class tes { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); int N = Integer.parseInt(st.nextToken()); int M = Integer.parseInt(st.nextToken()); int[] arr = new int[N + 1]; StringBuilder sb = new StringBuilder(); st = new StringTokenizer(br.readLine()); for(int i = 1; i <= N; i++) { //누적 합 저장 arr[i] = arr[i - 1] + Integer.parseInt(st.nextToken()); } for(int i = 0; i < M; i++) { st = new StringTokenizer(br.readLine()); int start = Integer.parseInt(st.nextToken()); int end = Integer.parseInt(st.nextToken()); sb.append(arr[end] - arr[start - 1]).append("\n"); } System.out.println(sb); } } 위와 같이 구현을 하고 실제로 콘솔에서 제가 아래와 같이 입력하면 tokenizer에서 exception이 발생합니다 5 3 5 4 3 2 1 Exception in thread "main" java.util.NoSuchElementException at java.base/java.util.StringTokenizer.nextToken(StringTokenizer.java:347) at tes.main(tes.java:19) 디버깅을 해보면 첫번째 5 3 입력값은 잘 읽어서 tokenizer에 저장이 되었는데요, 두번째 인풋인 "5 4 3 2 1"은 입력후 엔터를 치면 st = new StringTokenizer(br.readLine()); 라인을 넘어가면 실제 br(BufferedReader)에는 "[\n, 5, 4, 3, 2, 1, \n, , , , ,.. " 처럼 들어가 있는데 st(stringTokenizer)의 str 값을 보면 "" 이렇게 비어있어요 그래서 nextToken()이 없어 에러가 나는것같은데요 왜 제 itellij에서만 그럴까요 ? ㅠㅠㅠ jdk17 사용하고있습니다

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

자료구조 기본 개념 정리 - 순환큐 강의 내용 질문

미해결

자료구조 기본 개념 정리

자료구조 기본 개념 정리 - 순환큐 이 강의에서 7:20 경에 self.head를 4라고 강사님이 말씀하시는데 영상처럼 초록색 화살표가 찍힌 0을 가리켜야 맞는거 아닌가요? 제가 이해를 잘못하고 있는지 강사님이 잘못 말씀하신건지 의문입니다. 코드는 enqueue 메서드 안에 if((self.tail+1) % self.k == self.head): 이부분 설명하는 데입니다.

  • 컴퓨터-구조
  • 알고리즘
다한 댓글 1 좋아요 1 조회수 388

2차원 DP 1937

해결됨

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

#1937 왜 마지막에 +1 해주는거죠?

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

냅색 12865

해결됨

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

물건을 안 넣은 경우에도 idx+1 해주어야하지 않나요?

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

dfs, bfs 1번문제 dfs코드

해결됨

코딩테스트 [ ALL IN ONE ]

안녕하세요 bfs코드로 문제를 푸셨는데 이 문제를 dfs코드로 푸신 것도 볼 수 있을까요? (bfs로 푸신 것은 이해했습니다만 dfs는 dx, dy를 어떻게 적용해야하는지 궁금해서요) 또한 bfs는 최단거리 구할때 풀고 이외에는 dfs로 풀면 되는 것으로 아는데 애초에 bfs로 모든 문제를 접근하게 되면 최단거리 문제도 풀 수 있으니 dfs보다 포괄하는 문제유형이 많아서 효율적인 것이 아닌가요? 좋은 강의 해주셔서 감사합니다.

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

CLI UI적용 강의에서 질문드립니다.

해결됨

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

강의 자료로는 잘 실행되는데 똑같이 복사 붙여넣기로 다른 솔루션에서 실행하려면 이렇게 오류가 뜹니다. 이유를 잘 모르겠어 질문드립니다..

  • c
  • 코딩-테스트
  • 알고리즘
  • vc++
yorion 댓글 1 좋아요 0 조회수 364

2강 정수론 14252

해결됨

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

힌트가 없다는 가정한다면, for i in range(42, 2184): 구문에다가도 if i == 2183: count += 2 위의 조건문을 넣어줘야겠죠?

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

완전탐색 - 구현(순열) 질문

해결됨

코딩테스트 [ ALL IN ONE ]

강사님, nums 1234로 만들수 있는 모든 순열을 반환하시오 문제에서 질문이 있습니다. curr = []라고 지정하지 않았는데 어디에서 갑자기 curr이 빈리스트로 자동적으로 생성된건가요? curr이랑 nums 개수 같으면 answer에 순열 추가되고 함수종료되는건 알겠는데 curr가 [1, 2, 3, 4]일때 재귀함수 종료되고 다음 curr.pop()로 넘어가서 [1, 2, 3]이 되는거까진 이해갔습니다. 넘어가는 순간 또 재귀함수가 종료되서 curr.pop()이 되서 [1, 2]가 되는건 알겠는데 갑자기 3, 4만 빠진 여기에서 멈추게 되는 것이 이해가 가지 않습니다. 여기에서 멈춰서 다시 4, 3으로 진행되는게 이해가 안가서요ㅠㅠ 1, 2도 전부 이전의 재귀함수가 종료된 것이니 pop이 되어야 되는거 아닌가요?ㅠㅠ for문 안의 재귀함수가 종료될시 어디로 돌아가는지가 약한거 같은데 이부분 공부하는 방법이 있으까요?

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

dfs, bfs 인접리스트

해결됨

코딩테스트 [ ALL IN ONE ]

안녕하세요 강사님, 다름이 아니오라 그래프 탐색에서 그래프를 표현하는 방법으로 소개해주신 것 중에 인접리스트를 보면 딕셔너리로 key(노드) : values(간선)으로 표현하셨는데 강의 말고 다른 교재나 설명들을 보면 인접리스트를 표현할 때 딕셔너리로 나와있는 것은 본 적이 없고 강의 중에 풀어주셨던 rooms 예제에 나오는 것처럼 인덱스를 노드로 생각해서 [['b', 'c'], ['a', 'c', 'd'] , ['a', 'b'], ['b']] 이렇게 2차원 리스트로 표현하는 것만 나와있는데 어떻게 공부를 하면 되는 것일까요? 제가 한 방식을 정해서 체화시키는 것을 좋아해서요ㅠㅠ 자세히 설명해주시면 감사드리겠습니다. 또한 visited = []에 방문한 노드를 append로 추가하는 방식과 visited = [0] * (노드 번호 + 1, 0번째는 안쓰므로) 이거에서 방문한 노드의 원소 0을 1로 바꾸는 방식의 차이점이 무엇인지 궁금합니다. 1로 방문처리 해주는거랑, 방문한 노드를 추가해서 처리해주는 것의 차이가 궁금합니다. 유명한 코테 교재들 모두 가지고 있어서 봤는데 visited = [0] *(n+1) dfs 함수 내에 visited[v] = True 이런식으로 1로 바꿔주면서 방문처리를 하더라고요 append는 안보이는거 같아서 여쭤봅니다! 아래는 제가 위에서 여쭤본 강의와 다른 교재들에서 본 내용인데 교재 모두가 이렇게 구현하고 있어서 여쭤봅니다ㅎㅎ 보편적인걸 원해서요 질문이 길어져서 죄송합니다 # DFS 메서드 정의 def dfs(graph, v, visited): # 현재 노드를 방문 처리 visited[v] = True print(v, end=' ') # 현재 노드와 연결된 다른 노드를 재귀적으로 방문 for i in graph[v]: if not visited[i]: dfs(graph, i, visited) # 인접 리스트 방식으로 그래프 표현 # 각 노드가 연결된 정보를 표현(2차원 리스트) graph = [ [], [2,3,8], [1,7], [1,4,5], [3,5], [3,4], [7], [2,6,8], [1,7] ] # 각 노드가 방문된 정보를 표현(1차원 리스트) # 기본적으로 모든 값들을 False로 초기화하고, index 0은 사용하지 않는다. visited = [False]*9

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

6강 탑다운 DP - 상담 (#14501) 질문 있습니다!

해결됨

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

recur(idx) 함수의 첫 번째 if 문인 if (idx == N - 1) return 0; 에서 0을 리턴하는 이유가 궁금합니다. 제가 이해하기론 N - 1은 마지막 일자의 상담이고 마지막 일자의 상담에 걸린 경우 무조건 받는 것이 퇴사 전 돈을 더 많이 받기에 이득이라고 이해를 했는데요. 그렇다면 0을 리턴하는 것이 아닌 그 마지막날 상담에 받는 돈의 값을 리턴하는 게 맞는 게 아닌가 하는 생각이 들었습니다. 또한 idx > N - 1의 경우 dp 에 들어있는 돈의 값에 영향을 주면 안되므로 이 경우에는 if (idx > N - 1) return 0; 이지 않을까 하는 생각도 듭니다. 이런 의문점이 드는게 제가 문제를 잘 이해하지 못하고 접근하고 있는 것 아닌가 싶어서 질문드립니다~ 요즘 쉬운 설명의 강의 너무 잘 듣고 있습니다~ 감사합니다!

  • python
  • 코딩-테스트
  • 알고리즘
남경태 댓글 2 좋아요 1 조회수 242

SearchToRemove와 RemoveNode가 분리되어야 할 필요가 있을까요?

해결됨

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

RemoveNode를 직접 먼저 구현한 후 강의를 듣게 되었는데요, 저는 RemoveNode 안에 Search하는 코드를 통합해서 짰는데 SearchToRemove가 RemoveNode를 실행시키기 위해서만 필요하다면 굳이 분리를 해야 할까 하는 의문이 들었습니다. 하나의 함수는 하나의 동작만 실행해야 해서 분리가 된 것일까요? 아니면 SearchToRemove가 나중에도 사용이 될 가능성이 있어서 분리된 것일까요? 제가 작성한 코드를 첨부합니다. void RemoveNode(const char* pszName) { USERDATA* pTmp = g_pHeadNode; USERDATA* previousNode = NULL; bool isFound = false; // 노드 찾기 while (pTmp != NULL) { if (strcmp(pTmp->name, pszName) == 0) { isFound = true; break; } previousNode = pTmp; pTmp = pTmp->pNext; } // 노드 찾기 실패 if (isFound == false) { printf("\"%s\" : Not Found, remove failed.\n", pszName); return; } // 헤드인 경우 if (g_pHeadNode == pTmp) { g_pHeadNode = pTmp->pNext; free(pTmp); printf("\"%s\" : Found, remove successed.\n", pszName); return; } // 헤드가 아닌경우 previousNode->pNext = pTmp->pNext; free(pTmp); printf("\"%s\" : Found, remove successed\n", pszName); }

  • c
  • 코딩-테스트
  • 알고리즘
  • vc++
이이이이잉잉이 댓글 1 좋아요 0 조회수 314

동적계획법 (3) 문제로 배우는 DP

해결됨

코딩테스트 [ ALL IN ONE ]

탑다운 방식인데 위에 그림처럼 바텀업처럼 문제를 아래서 부터 해결해 나가서요. 강의에서는 피보나치가 탑다운 방식으로 푸는 경우가 있는데 바텀업 방식처럼 문제를 아래서(위에 그림 빨간색표시처럼) 부터 해결한다고 하셨는데요. 혹시 계단 문제도 피보나치처럼 탑다운 방식인데 문제를 아래서 부터 해결해나가는 스타일인건가요? 문제를 읽고 탑다운으로 풀지 바텀업으로 풀지 어떻게 알아요?

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

미해결

코딩테스트 [ ALL IN ONE ]

탑다운 방식인데

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

투포인터 3번(#16472) 조건문 순서 질문드립니다!!

해결됨

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

안녕하세요, 선생님. 매일매일 강의 잘 듣고 있습니다! 오늘은 투포인터를 공부하다 제가 작성한 코드와 제공해주신 정답 코드의 조건문을 확인하는 순서에 차이가 있어서 질문드립니다. 해당 문제를 풀 때 while 문 안의 아래 2가지 조건을 확인하는데요, 조건 1 if arr[e] in letter: 조건 2 if len(letter) < N: 제가 풀어봤을 때 저는 조건1 > 조건 2를 확인하도록 구현을 했는데 정답 코드는 조건2 > 조건 1를 확인하더라구요. 물론 저는 실제 정답인 4와는 달리 답이 5가 나와서 코드가 어디에선가 잘못되긴 한 것 같은데 틀린 이유가 조건문에 순서와 상관없이 제가 단순히 잘못 구현한 것인지 아니면 반드시 조건문을 조건2>조건1의 순서로 확인해야되는 문제인지 판단이 서지 않아 질문드립니다! 그리고 앞으로 다른 문제를 풀 때도 어떤 조건을 먼저 확인해야 되는 것인지 어떻게 판단하면 좋을지 판단 기준이 있는지도 궁금합니다 ^^ #[나의 코드] N = int(input()) arr = list(input()) s = 0 e = 0 letter = [] letter.append(arr[s]) ans = 0 while s < len(arr) and e < len(arr): ans = max(ans, e-s+1) if arr[e] in letter: ####### 조건 1 e += 1 else: if len(letter) < N: ####### 조건 2 letter.append(arr[e]) e += 1 else: s += 1 e = s letter = [arr[s]] print(ans) #[정답 코드] n = int(input()) arr = list(input()) arr.pop() #inch-worm s = 0 e = 0 letters = [] letters.append(arr[s]) dist = 0 start_flag = -1 while s < len(arr) and e < len(arr): # print(s,e,letters) dist = max(dist, e-s+1) if len(letters) <= n: ########조건 2 e += 1 if e < len(arr) and arr[e] not in letters: #######조건 1 letters.append(arr[e]) if len(letters) > n : s = s+1 e = s letters = [arr[s]] print(dist)

  • python
  • 코딩-테스트
  • 알고리즘
한혜경 댓글 1 좋아요 1 조회수 299

05_adtFileIO 프로젝트 문의

해결됨

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

안녕하세요. 선생님! 소스 보다가 하나 발견한 부분 공유드립니다. 프로젝트이름: 05_adtFileIO 소스파일: singleList.c 함수명: SearchListByName Q. 해당 함수는 Key값으로 조회하여 데이터를 로드하는 함수입니다. 현재는 파일에서 매번 로드하도록 되어있는데 캐싱된 데이터(pDataCache)가 있다면, 파일에서 읽어올 필요가 없을것 같아 문의드립니다. 추가로 테스트 해보니 Search(Kim) > Edit 0 > 수정완료 > Commit X > Search(Kim) 를 하면 Edit에서 수정했던 데이터가 없어지는 현상이 있습니다. 이미지의 흰 네모안의 로직(주석포함)은 추가해본 부분 입니다.

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

LIFO 관련 질문

해결됨

코딩테스트 [ ALL IN ONE ]

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 LIFO 1번째 문제 소스 여기에서 elif not stack or stack.pop() != p: 해당 부분해서 stack.pop()을 해줌과 동시에 pop한 값이 p와 같은지 아닌지 비교해보는 걸까요? 실질적으로 pop이 등장하는 부분이 저 부분밖에 없어서 헷갈리네요ㅠㅠ

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

LIS/LCS 2번 문제

해결됨

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

안녕하세요! 질문드립니다~ 추가강의 LIS/LCS 2번 문제(#9251)를 백준에서 채점을 하다가 발견한 사실인데요 아래 정답 코드에서 import sys sys.stdin = open('/Desktop/dev/BackJoon/추가강의/LIS/9251.txt','r') sys.setrecursionlimit(999999) input = sys.stdin.readline A = str(input()) N = len(A) B = str(input()) M = len(B) dp = [[0]*(M+1) for _ in range(N+1)] for i in range(1,N+1): for j in range(1,M+1): # if A[:i][-1] == B[:j][-1]: if A[i-1] == B[j-1]: dp[i][j] = dp[i-1][j-1]+1 else: dp[i][j] = max(dp[i-1][j], dp[i][j-1]) print(dp[N][M]) import sys sys.stdin = open('/Desktop/dev/BackJoon/추가강의/LIS/9251.txt','r') sys.setrecursionlimit(999999) input = sys.stdin.readline 위의 이 부분을 지우고 돌리면 성공하는데, 위의 부분이 있을 때 채점 초반에 틀렸다고 하네요. 혹시 이번 문제에서는 input이 띄어쓰기가 없는 문자열이라서 input = sys.stdin.readline 부분 때문에 에러가 난 것인지 궁금해서 질문드립니다!

  • python
  • 코딩-테스트
  • 알고리즘
한혜경 댓글 2 좋아요 1 조회수 225

Python sys.stdin.readline() 사용

미해결

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

안녕하세요. 구간합구하기 (백준 11660) 문제를 풀고 있는데요. 코드는 똑같은데, 제일 상단에 아래 코드 입력 여부에 따라 시간초과/성공이 갈립니다. import sys input = sys.stdin.readline 이게 실패와 성공을 가를만큼 중요한 역할을 하나요? 위 코드를 넣으면 왜 빨라지는지 설명해주실 수 있으실까요?

  • python
  • 코딩-테스트
  • 알고리즘
조수민 댓글 1 좋아요 0 조회수 579

[노션공유] 페이지 접근불가

해결됨

코딩테스트 [ ALL IN ONE ]

안녕하세요 갑자기 노션 페이지에 접근이 불가능하다는 안내와 함께 노션 페이지가 공유 내역에서 삭제 되었습니다... 제 노션 아이디에 맞게 공유해주신 메일을 받고 초반에 사용했는데 갑자기 이렇게 돼서 재공유 요청 부탁드립니다. tldmschl81@soongsil.ac.kr 입니다!!

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

인기 태그

인프런 TOP Writers

주간 인기글