묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
인접행렬을 기반으로 탐색하기 블로그 정답코드
안녕하세요 선생님 수업 잘 듣고있습니다. http://boj.kr/f04608a73b92415eb201ffc29830dcf1위 코드는 블로그 2주차 인접행렬을 기반으로 탐색하기의 정답코드입니다. 선생님께서는 a[1][2] = 1; a[1][3] = 1; a[3][4] = 1; a[2][1] = 1; a[3][1] = 1; a[4][3] = 1;부분을 main함수 안에다 설정해놓으셨는데 전역변수가 아니라 main함수안에 설정해 놓으신 이유가 궁금합니다.또 저 위의 main함수 안에 설정된 값들이 어떻게 go함수가 메인함수보다 더 위에 있음에도 불구하고 go함수에서 참조가 가능한지도 궁금합니다. 강의 잘 듣고 있습니다 감사합니다!
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
정적할당과 동적할당 관련 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 알고리즘 교안의 동적 및 정적 할당 section에서 질문입니다.재귀함수가 호출된다고 했을 때, 새로운 스택 프레임이 매번 사용되기 때문에, 함수 내의 변수 집합이 해당 함수의 다른 인스턴스 변수를 방해하지 않습니다.라는 내용이 있습니다. 여기서 2가지 질문이 있습니다.프레임이란 os에서 언급되는 데이터 단위인 프레임을 말하는 건지?파이썬으로 치자면 self. 로 정의된 인스턴스 변수를 말하는 건지 아니면 c++만의 다른 개념이 있는 건가요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
% 연산자 이용한 풀이
http://boj.kr/2044c9818df1435bb91fa7b228532614조금 복잡하게 이런식으로 풀었는데 테스트케이스는 통과했는데 정답은 못받았습니다. 혹시 어떤부분이 틀린걸까요?여러가지 테스트케이스를 또 생각해봤는데 잘 모르겠습니다..
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
섬나라 아일랜드 문제 (DFS) - 12분 50초 의문
안녕하세요.섬나라 아일랜드 문제 설명 중 12:50 쯤, 브라우저 콘솔에 찍힌 dx,dy 값에 대응되는 좌표를 문제의 보드위에 동그라미 해주셨는데요, 그 순서가 (1,2) 부터 잘못되지 않았나싶어서요.이상입니다. 감사합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
if(조건문) 의미 해석 질문
안녕하세요 강사님 이건 뭔가 너무당연해서 저 말고는 다 아는 분위기라 질문하기 좀 그렇지만 명확히 알고싶어 질문드려요ㅠㅠ일단 제 생각에 1-K 답안의 if(cnt[i])의 의미가 강의에서 스치듯 언급하셨는데 "cnt[i]의 값이 있으면, 존재하면" 으로 해석되는것 같아요그리고 저번에 1-E 답안에서도 if(ret.size())로 이부분이 한번 등장했었는데, 이때도 강의내용 들으면서 대충 "ret의 사이즈가 있으면, 존재하면"의 의미구나 하고 넘어갔었던 적이 있거든요.음 저는 코딩 경험이 적어서 if(조건문)의 조건문 부분에 항상 (a > 12)라던가 (a == 0) 이런식으로 연산자가 들어간 형태로만 넣어왔는데, 제가 위에 적은 1-K, 1-E 두가지 경우는 조건문 부분에 연산자 하나 없이 한개의 항만 달랑 들어가있는데, 이게 저는 처음보는 형태라서Q1. 저런 형태가 나올때마다 제 생각대로 "~이 존재하면"으로 해석하는게 맞는지와, Q2. 혹시나 더 긴 구문이 저렇게 짧게 함축된 것이라면 어떤과정을 거쳐서 저렇게 해석하게 되는지가 궁금합니다 (마치 긴 for문을 간단하게 범위기반for루프로 나타낸것처럼, 이것도 그런 과정이 혹시나 있다면 알고싶어요...ㅠ)제가 생각해도 걍 그런갑다 해도 될 포인트같긴 한데,,묘하게 거슬려서요ㅠㅠ바쁘신데 항상 감사합니다
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1987 알파벳 백트래킹 시도
안녕하세요 큰돌님~!http://boj.kr/314427359c31448dab02e36c370858d2위 코드에서 9번째 if문만 빼면 통과는 되었습니다. 하지만 시간이 좀 오래 걸리는 것 같아서 생각한 것이 어차피 string s의 최대 size는 26이니까(모두 다른 알파벳이 다 들어갔다는 가정) 정답 변수인 ret이 26일 경우 항상 dfs 함수를 종료시키는 조건문을 넣었는데요 위 조건식만 넣으면 out of range 에러가 나는데 이유가 무엇일까요...?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-J 모범답안 while(t--)
안녕하세요 강사님 모범답안 while(t--) 여기서 t--가 무슨뜻인가요? 와일문은 조건이 참일때까지 반복한다고 알고있는데 조건에 t--는 처음봐서요
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
[필수개념] 조합 관련 문의
안녕하세요. 조합 코드 관련하여 문의드립니다.아래 코드대로 출력했을 때0 1 20 1 30 1 40 2 30 2 40 3 41 2 31 2 41 3 42 3 4이와 같이 나옵니다.combi 함수에서 for문을 for(int i=start+1; i<=n; i++) 로 변경하면 '5'도 출력되는데 .. 변경하는 게 맞을까요? 답변 부탁드려요..#include <bits/stdc++.h>using namespace std;int n=5, k=3, a[5]={1,2,3,4,5};void print(vector<int> b){ for(int i:b)cout << i << " "; cout << '\n';}void combi(int start, vector<int> b){ if(b.size()==k){ print(b); return ; } for(int i=start+1; i<n;i++){ b.push_back(i); combi(i,b); b.pop_back(); } return ;}int main (){ vector<int> b; combi(-1,b); return 0;}
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
16637번 문제 질문
안녕하세요 큰돌님 !go 함수 내부에 있는 두 번째 if문 조건식에서 if(here <= num.size() - 3) 과 if(here + 2 <= num.size() - 1)는 똑같은 조건식 아닌가요? 첫 번째 조건식은 78%쯤 out of bounds에러가 발생하여 여쭤봅니다 !if(idx <= num_v.size() - 3){ int temp = calculate(num_v[idx+1],oper_v[idx+1],num_v[idx + 2]); go(idx + 2, calculate(sum, oper_v[idx], temp)); }http://boj.kr/bb244381081f4c6dbdfcaa6fdb8ea45c
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-S 질문있습니다!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.최대시간복잡도가 10억이고 제한시간이 5초인데 강의해주신 코드로 어떻게 통과가 되는건지 궁금합니다! 혹시 알려주신 방법외에 원래는 다른 방법으로 풀어야 하는건가요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
지훈이가 불에 뛰어드는 건에 관하여 질문
안녕하세요 큰돌님~!https://www.acmicpc.net/source/share/d9a60c043e7d428bac7374f83c5ca09d제공해주신 소스 지훈이의 while문에서요if(!in(ny,nx)) continue;if(person_check[ny][nx] || a[ny][nx]=='#') continue;if(fire_check[ny][nx] <= person_check[y][x] + 1) continue;위 if문들만 체크한다면 지훈이가 이미 불이 난 위치에 뛰어드는 경우까지 큐에 푸시되지 않나요? 통과는 되는데 히든 테스트 케이스에 위 로직을 체크하는 케이스가 있어도 통과될 수 있는 것인가용? 제가 놓치고 있는 것이 무엇인지 질문드립니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-P 디버깅 질문입니다
이 문제를 처음 풀 때, 저는 씨를 심을 수 있는 공간을 3개를 뽑고, 각 공간마다 꽃이 필 수 있을 때만 ret값을 초기화 하는 형태로 짰었습니다.http://boj.kr/95d7faf9296842c2b79fdd40a1c85a75위의 링크에 있는 로직 중 48-49행의 로직이 틀려서 제출하면 '틀렸습니다'라고 뜹니다.결국 코드 하나하나 뜯어봐서 48-49행의 로직이 틀렸다는 것을 지금은 알지만 디버깅을 통해서 '48-49행의 로직이 틀렸구나!' 라는걸 알고 싶어서 제 로직 중 어느 곳에 디버깅을 해야 48-49행이 틀렸는지 알고 싶습니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
split 함수 문의드립니다.
강의 잘 수강하였습니다. split 함수 정의해주신거 관련해서 문의가 있어서요. 만약 delimeter 가 input 에 포함되어 있지 않은 경우에는 input 전체가 하나 들어간 vector가 들어가야 할거 같은데 마지막 예제에서는 그런 처리가 안된거 같아서요. 최초 token 정의 할때, input을 세팅해놓으면 되지않을까 싶은데 확인 부탁드립니다.
-
해결됨자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
2-11 임시반장 정하기 문제 해결 도와주세요
import java.util.Scanner; //임시반장 정하기 public class Class11 { public static void main(String[] args) { Class11 T = new Class11(); Scanner kb = new Scanner(System.in); int n = kb.nextInt(); // n명의 학생 int[][] arr = new int[n][5]; // n명 학생의 5학년까지 for (int i = 0; i < n; i++) for (int j = 0; j < 5; j++) arr[i][j] = kb.nextInt(); System.out.println(T.solution(n, arr)); } public int solution(int n, int[][] arr) { int answer = 0; int max = 0; for (int i = 0; i < n; i++) { // i학생 인덱스 int[] x = new int[n]; // 같은 반을 했던적이 있는지 담는 배열 for (int j = 0; j < 5; j++) { // 학년 수 for (int k = 0; k < n; k++) { //k학생 인덱스 if (i != k && arr[i][j] == arr[k][j])//i번학생과 k번학생의 학년이 같은지 검사. x[k] = 1; } } int s = 0; for (int tmp : x) { s += tmp; } System.out.print(i + 1 + "학생: " + s + " /"); for(int a : x) System.out.print( a + " "); System.out.println(); if (s > max) { max = s; answer = i + 1; } } return answer; } }저는 i번째 학생을 고정해두고 k번 학생이 반복문을 돌면서 j학년을 돌면서같은 반이었으면 x배열의 인덱스에 표시하도록 했습니다.그러면 x배열에 각 학생들이 같은 반이었던 학생들이 표시가 되고, 그 수를 합해서 answer로 반환하도록 했는데요.. 정답이 안 나옵니다 ㅠ.. 왜일까요
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
[5-L] 시간복잡도 계산 코멘트 요청
안녕하세요 큰돌 선생님!!5-L 문제 접근할 때 비트마스킹을 못 떠올려서, 전체 인원 중에 절반 인원을 뽑는 조합으로 생각했습니다.최대치로 가정하고 계산한다면, 20C10이 되는데요. 선생님은 비트마스킹을 써야 한다는 것을 조합과 어떻게 구분하셨는지 코멘트 주시면 감사하겠습니다..!앞에 aass0930님 질문글을 읽어보아도 제가 생각했던 로직에 대한 답을 찾을 수 없어서 이렇게 추가적으로 질문 드렸습니다!추가 질문) 경우의 수로 접근한다면, 스타트 팀에 인원을 먼저 배정한다고 했을 때 20 * 19 의 경우의 수가 나오는건가요? 항상 감사합니다 :)
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-J강의 질문
안녕하세요, 큰돌님. 강의 내용에서 크게 로직이 2개 정도 있는데, 그 중 1번 미래에 콘센트 구멍 개수만큼 미리 살핀 다음에, 존재하지 않는 건 뽑고 교체를 해준다는 로직은 이해하였습니다.그런데 가장 먼 미래에 참조되는(마지막) 거를 뽑는 건 이유가 무엇일까요?
-
미해결파이널 코딩테스트 : 프론트엔드
SPA 페이지 만들기 API 관련 문의드립니다.
안녕하세요.추가문제-바닐라JS로SPA만들기및API비동기통신:스토어페이지만들기(★★★★★)에서 API 사용과 관련하여 문의드립니다. 제가 상품 주문 하기에서 제공해주신 POST API를 통해 상품 주문하기 로직을 개발했었습니다만 다시 확인하러 실행해봤는데 API가 GET만 되고 POST, PUT, DELETE와 관련해서는 응답으로 Not Found가 계속 발생되더라구요,,혹시 몰라 Postman 이용해서 "섹션 12 2번째 강의(문제 설명)" 강의에서 설명해주신대로 해봤는데 동작이 제대로 되지 않는 것 같아 문의드립니다. 혹 서버에 문제가 생긴걸까요??
-
해결됨자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
봉우리 문제 정답인 것 같은데 뭐가 문제인지 잘 모르겠습니다..
import java.util.Scanner; public class Main { public static void main(String[] args) { Main t = new Main(); Scanner kb = new Scanner(System.in); int n = kb.nextInt(); int[][] arr = new int[n][n]; for(int i = 0; i < n; i++) { for(int j = 0; j < n; j++) { arr[i][j] = kb.nextInt(); } } System.out.println(t.solution(n, arr)); } public int solution(int n, int[][] arr) { int answer = 0; boolean isTop; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { isTop = true; int center = arr[i][j]; if (i != 0) //상 if (arr[i - 1][j] > center) isTop = false; if (i != n - 1) //하 if (arr[i + 1][j] > center) isTop = false; if (j != 0) //좌 if (arr[i][j - 1] > center) isTop = false; if (j != n - 1) //우 if (arr[i][j + 1] > center) isTop = false; if (isTop) answer++; } } return answer; } }정답은 잘 나오는 것 같은데.. 채점받으면 오답이라 나옵니다.. 무엇이 문제일까요? ㅠ
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-H 질문드립니다.
안녕하세요 선생님. 강의 항상 잘 보고 있습니다.Q1. 수빈이와 동생의 위치가 같을때는 고려하지 않아도 되나요?(답지를 보니까 그런 코드가 없어서 질문 드립니다.)만약 고려하지 않아도 된다고 한다면, 8-G(12851번 문제 - 숨바꼭질2) 에서는 왜 고려해야 했나요??(제가보기엔 같은 문제 같은데요..ㅎㅎ)Q2. 이 부분이 꼭 있어야 하나요? 만약 그렇다면 시간복잡도를 줄이기 위해 그렇게 하신건지 궁금합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-L 1940 주몽 투포인터 질문
안녕하세요 큰돌님, 언제나 좋은 강의 감사드립니다. http://boj.kr/0fccef48c8244d0a8b213e480cb8b80a 다시 한 번 풀고자, 단순 for문에서 투 포인터를 생각해서 풀었습니다. 저 코드는 정답이지만, 처음에 틀려서 원인을 몰라 고민을 계속하다가 l < r인 것을 l <= r로 해서 틀렸었습니다. 궁금한 것이 왜 l <= r이면 안되는 것일까요? l == r인 경우에 동일한 배열 인덱스를 참조하는 것이니 안된다고 생각하면 될까요? 좋은 강의 감사합니다.