묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
이 코드도 맞을까요?
이렇게 풀어도 맞을까요?function solution(necc, course) { let answer = "YES"; let lst = []; for (c of course) { for (n of necc) { if (c === n) { lst.push(c); break; } } } let compare = lst.join(""); if (necc !== compare) answer = "NO"; return answer; } console.log(solution("ABC", "ACBC"));
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2 - R
마지막 값 출력 때 '\n'을 빼먹고 안해서 1시간 정도 헤맸습니다... 문제에서 요구한 사항이 아닌 거 같아서 딱히 하진 않았는데 다른 문제를 풀 때에도 명시돼 있지 않더라도 혹시 모르니 하는 것이 나을까요??또한 문제에 명시돼 있진 않으나 이진트리라고 가정하고 풀긴 했는데 이런 것도 혹시 문제의 예시를 보고 추정하면 될까요??
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
알고리즘 교안 P.42 질문
end()가 문자열의 마지막 요소 그 다음을 가리키는 거라고 하셨는데그럼 P.42에서 reverse()할 때도 reverse(a.begin(), a.end())가 아닌 reverse( a.begin(), (a.end()-1) )로 써도 문자열이 완전히 뒤집어 질 수 있지 않나요?
-
해결됨자바 코딩테스트 - it 대기업 유제
잃어버린 강아지 방향 문제
문제에서 북쪽(지도에서 위쪽)으로 이동한다고 했는데북쪽으로 이동이면 이동하게되는 처음 방향은x = 0 , y = -1 이 아닌가요? x = -1 , y = 0 인 이유를 모르겠습니다.
-
해결됨자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
코드의 이 부분을 다르게 풀었는데, 괜찮은지 질문드립니다!
private static void bfs() { while (!queue.isEmpty()) { int size = queue.size(); for (int i = 0; i < size; i++) { Point now = queue.poll(); for (int j = 0; j < 4; j++) { int nextX = now.x + dx[j]; int nextY = now.y + dy[j]; if (nextX >= 0 && nextY >= 0 && nextX < n && nextY < m) { if (board[nextX][nextY] == 0) { board[nextX][nextY] = 1; day[nextX][nextY] = day[now.x][now.y] + 1; queue.offer(new Point(nextX, nextY)); } } } } } }코드의 bfs 메서드이고, 큐의 사이즈만큼 순회하는 로직int size = queue.size(); for (int i = 0; i < size; i++) { Point now = queue.poll();을 추가했습니다. 결과나 과정 측면에서 봤을 때, 강의에서의 코드와 무슨 차이가 있는지 모르겠는데, 혹시 성능 상에서 기존 코드보다 많이 떨어지는 코드일까요? 이렇게 작성해도 되는지 궁금합니다. 이전 bfs 강의에서는 이렇게 큐의 사이즈를 구해서 순회하는 로직을 사용하더라구요.
-
해결됨자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
해당 문제 다른 풀이에 대한 질문입니다.
import java.io.*; import java.util.*; class Time implements Comparable<Time> { int startTime, endTime; public Time(int startTime, int endTime) { this.startTime = startTime; this.endTime = endTime; } @Override public int compareTo(Time time) { if (this.endTime == time.endTime) { return this.startTime - time.startTime; } else { return this.endTime - time.endTime; } } } public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); List<Time> times = new ArrayList<>(); StringTokenizer st; int startTime, endTime; for (int i = 0; i < n; i++) { st = new StringTokenizer(br.readLine()); startTime = Integer.parseInt(st.nextToken()); endTime = Integer.parseInt(st.nextToken()); times.add(new Time(startTime, endTime)); } System.out.print(solution(times)); } private static int solution(List<Time> times) { int answer = 0; int endTime = 0; int count = 1; Collections.sort(times); for (Time time : times) { if (time.startTime < endTime) { count++; } else { answer = Math.max(answer, count); count = 1; endTime = time.endTime; } } return answer; } } 이렇게 로직을 구현했는데, 왜 오답 처리되는지 궁금합니다.다른 예외 케이스가 존재할까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
맞왜틀 질문
설명해주신대로 ret=0, d=0~100까지로 해서백준 예제입력을 넣어봤는데출력값이 계속 0이 뜹니다 ㅠㅠ..ret=1로 했을때는 출력값이 정상적으로 5가 뜨긴하는데 왜 ret=0을 넣었을 때 안되는건지 모르겠습니다.뭐가 문제인가요?#include <bits/stdc++.h> using namespace std; int n, h[101][101], visited[101][101], cnt, ret=0; const int dy[4] = {-1, 0, 1, 0}; const int dx[4] = {0, 1, 0, -1}; void dfs(int y, int x, int d){ visited[y][x] = 1; 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>=n) continue; if(visited[ny][nx]) continue; if(h[ny][nx] <= d) continue; dfs(ny, nx, d); } return; } int main(){ cin >> n; for(int i=0; i<n; i++){ for(int j=0; j<n; j++){ cin >> h[i][j]; } } for(int d=0; d<=100; d++){ cnt=0; fill(&visited[0][0], &visited[101][101], 0); for(int i=0; i<n; i++){ for(int j=0; j<n; j++){ if(h[i][j] <= d) continue; if(visited[i][j]) continue; dfs(i, j, d); cnt++; } } ret = max(ret, cnt); } cout << ret; return 0; }
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
DFS 풀 때 재귀 함수 매개변수로 L값만 넘겨주는 이유가 뭔가요?
DFS를 풀 때 매개변수로 int L 값만 계속 넘겨주잖아요ch[] 배열은 항상 static으로 전역으로 선언해두시고,그리고 재귀 진입 전에 ch[i] = 1 하고 돌고 나서 ch[i] = 0하는데L값도 재귀 진입 전에 L++하고 돌고 나서 L--하면 같은 결과가 나오는데매개변수로 L값만 넣는 이유가 궁금합니다.넣을 꺼면 둘 다 넣거나 둘 다 빼거나 할 것 같은데.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
[3_Q맞왜틀] 어디서 틀렸는지 잘 모르겠어요
http://boj.kr/2c94d34c79944ea3a6c763ef440ac650 예제는 맞는 것 같은데 (visited배열 출력해서 확인함) 제출 하면 틀렸다고 나오네요.. 왜그런지 잘 모르겠어요 ㅜㅜ저는 다음과 같이 코드를 짰습니다.입력받고gohome 함수에서cnt가 k와 같으면 ret++하고 returnny와 nx정의해서 범위 벗어나는지 확인, 방문했는지 확인, 입력받은 배열 값이 T인지 확인, cnt==k인데도 도착지가 집이 아닌지 확인위 조건들을 통과하면 방문하고 재귀함수 호출 , 방문기록 삭제도움 많이 받고있습니다 선생님 감사합니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-R 데이터 저장
http://boj.kr/1c07c3f4f76347e791816ea1d051396b 위의 코드에서 5 -1 0 0 1 1 0 다음과 같은 테스트케이스를 넣어주면 deleteChildren()에서 1번 노드가 들어갈때 데이터가 온전히 전달이 안됩니다... 확인해보니 1번 노드에서는 자식이 2개여야 하는데 0개로 나옵니다. deleteChildren를 호출하기전에는 2개로 잘 나오는데 이유가 뭘까요..? 아래 사진은 deleteChildren을 호출하기전 데이터 사진입니다. deleteChildren(node& nd) 으로 해도 데이터가 안넘어가지더라구요... 우선은 node가 아닌 int idx를 받아 함수 안에서 tree[idx] 이렇게 직접 찾게 바꿔서 해결은 했습니다만 데이터가 제대로 안넘어가는 이유가 너무 궁금합니다!!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-A map 관련 질문입니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 강사님, 제가 map<int, vector<vector<int>>> ret_v; 의 형태에 대해 이해가 잘 안됩니당 강의에서 설명해주신대로 벡터의 벡터를 이용하는것 까지는 이해를 했습니다.근데 출력부분이 왜for(int a : ret_v[ret][0]){ cout << a << " "; } 이렇게 작성 되는지가 이해가 안가네용 ... 제 생각엔 ret_v[ret]면 될거같은데 [0]이 왜 있고 무슨의미인지 이해가 안되네요
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-K 접근 방식
안녕하세요,, 선생님문제 보자마자 bog2636에 있는 치즈 문제랑 똑같다고 생각해서, 같은 로직으로 풀고자 했습니다. dfs를 두개 만들어서 하나는 백조가 백조를 찾아가는 로직, 하나는 얼음을 녹이는 로직. 단순히 2개의 dfs를 만들어서 구현하고자 했습니다. 아직 미완성 코드이긴하지만, 이렇게 푸는 방식이 맞는지 궁금합니다 .. http://boj.kr/5323a9d789cc4883a53cdc463fedb890
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
안녕하세요 2-E 푸는중 질문이있습니다.
http://boj.kr/066bf2d88dcc4b16be8da489d9449b1c정답은 맞추었는데조건체크부분에서 전부 1이거나 전부0인부분을 체크할때에 문자열의 크기가1일때 전부 합이 4거나 0이면 전부1이거나 0인조건으로 체크하여 결과를 리턴했는데 깔끔하지 못한것같아 혹시 조건문체크에서 전부1이거나 0을 체크할수있는 좋은 방법이있을까 싶어 질문을남겨봅니다 감사합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
질문
교안이 개정되어, 다시 읽어보고, 전에 중단했던 부분부터 다시 문제를 풀어보려 하는데, 한 가지 궁금점이 있습니다. 위에는 cin이 개행문자까지 입력받는다 하고, 아래는 개행문제 직전까지 입력을 받는다고 언급되어 있습니다. 서로 반대되는 말인 것 같아서, 질문 드립니다. 참고로 제가 이해한 방식은 cin은 개행문자까지 입력된다 생각하고, getline은 개행문자 직전까지 입력된다 생각했습니다. cin >> T;인 경우에는 geline(cin, bufferflush);가 필요가 없지만, geline으로 받는 경우에는 해당 코드(getline(cin, bufferflush);)가 필요하다. 헷갈리지 않기 위해 기본적으로 적는 게 좋다이렇게 이해한 게 맞을까요??
-
해결됨자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
변수 L에 대한 질문입니다.
변수 L이 level을 나타내는 것 같은데요.이 문제에서의 L은 level이 아닌, 인덱스로서의 의미로 작용하는 것 같습니다. level과 인덱스의 구분 개념이 헷갈리는데, 혹시 명확하게 잡아주실 수 있으실까해서 질문 남깁니다! 트리에서는 depth라는 용어를 사용하고 1부터 시작한다.그래프에서는 level이라는 용어를 사용하고 0부터 시작한다. 라고 알고 있는데, 제가 알고 있는 개념이 맞는 것인지 궁금합니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-F 시간 초과 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. http://boj.kr/9be2e49bafe64797b19ed75db1b6ac7c 재귀로 이 문제를 구현해봤는데 시간 초과가 발생하였습니다. 어떤 부분에서 시간초과가 발생하였는지와 개선할 점에 대해 알려주셨으면 좋겠습니다. 또한 코드 자체는 맞은것 같은데 혹시 반례가 있다면 알려주시면 감사하겠습니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
[초기화값] 1e9에 관한 질문입니다
안녕하세요 선생님, int 초기화값에 관해 궁금한 부분이 생겨 질문을 드립니다.int형 INF를 1e9로 초기화하는 기본적인 이유는 이해하였습니다. - INF끼리 더했을 때 범위가 넘어가는 것 등을 방지할 수 있다는 것과- 이상한 문제가 아니라면 1e9로 초기화해도 풀린다는 것그러나 만약 면접에서 1e9로 초기화한 이유를 질문받는다면 제대로 된 이유를 대답하지 못할 것 같습니다. 위의 두가지 대답은 풀이의 편의를 위해 1e9 이하의 답이 나올 것이라는 자체적인 판단 하에 마음대로 설정했다고 보일 듯 합니다. 문제에서 1e9를 넘어가는 답이 나오지 않을거라고 명시한 적이 없는데 왜 마음대로 1e9를 한계선으로 설정했냐는 질문을 받는다면 어떻게 대답하는 것이 맞을까요? 이런 질문은 들어오지 않는다고 봐야할까요?
-
미해결코딩테스트 [ ALL IN ONE ]
안녕하세요 강사님!
강사님 수업 강의 모두 결제해서 틈틈히 잘보고있는 개발자입니다 :)코테 강의 시청하다가혹시 cs강의 노션에 pdf파일 만들어주신거처럼개발자취업비밀노트코딩테스트이렇게 2개의 노션으로 공유해준 사이트에도 각각 pdf파일로 올려주실생각은 없으실까요ㅠ?ipad에 넣어서 밑줄치면서 공부하기가 편했던 기억이 있어서 궁금합니다! 만약 있으시면 일정도 알 수 있을까요!! :)
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
gets 관련 질문드립니다
7번 문제 (영어단어복구)에서 gets를 사용하였는데gets를 사용하면 오류가 떠서 사용을 못하게 되어서 찾아보니gets가 위험하여 fgets나 gets_s를 사용하라고 하던데fgets를 사용하니 개행문자까지 들어가서 for(i=0; arr[i]!='\n'; i++) 이렇게 사용하여 풀었는데혹시 공백이 포함된 문자열을 입력받을때 다른 좋은 방법이 있을까 질문드립니다! 그리고 대문자를 소문자 변환하여 다른 새 배열에 넣고 한번에 출력하셨는데혹시 for문 안에서 해당될때마다 문자 하나씩 출력하는것과 성능 차이가 있을까요? 감사합니다
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
Dev c++ 디버깅이 안되는 현상
안녕하세요. 윈도우 환경에서 DEV C++을 사용하고 있습니다. 디버깅을 하고 싶은데 디버그 모드로 실행 하면 해당 메세지 창이 나오고 yes를 누르면 DEV C++ 프로그램이 종료되는 현상이 발생합니다.해당 현상 해결 방안을 알신다면 방법을 알려주세요.감사합니다.