묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
문제집 실패시 입력값
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 문제집에서 런타임 오류시에는 입력값을 안 보여주는데 보여주면 좋겠습니다!
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
안녕하세요. 선생님(54번 코드 관련 문의)
선생님 알고리즘 수업 들으면서 굉장히 도움 많이 받고 있습니다.그런데 여기 54번 문제풀이에서 scanf("%s", &a); 라고 작성하셨는데, 정확히는 scanf("%s", a); 가 맞는 것 같습니다. 물론 &a 와 그냥 a 둘다 결국에는 첫번째 배열 위치를 가리키지만, &a는 char (*)[50] 이라는 배열 포인터이라서 실제로 scanf인자가 기대하는 char * 타입이 아닙니다. 그러므로 a (char *) 로 쓰는 것이 적절해 보입니다. 정말 사소한 것이기는 한데 혹시나 다른 수강생 분들이 오해할 수 있다고 보여서 이렇게 말씀드립니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-O 17406번 배열 돌리기 질문 있습니다.
http://boj.kr/3457690bac064f1ea89a9a0340d9aa2f제가 한 방식은 순열로 다 저장한 후에 저장한 값 중에서 제일 작은 값을 저장하는 방식을 했습니다.분명 필요한 내용들은 다 했다고 생각했는데, 디버깅을 해도 문제점을 잘 모르겠습니다..
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-A 2분대 설명에 대해 질문 있습니다.
안녕하세요,2분대에서,a->b->c 든, a->c->b 든 순서는 상관 없이 둘 중 최적을 구하고 d로 간다고 말씀하신걸로 이해했습니다.그런데, a->b->c 인지, a->c->b인지 실제로 중요하고, 둘 다 탐색 해야하는 것 아닌가요..?a->b->c 인 경우와 a->c->b인 경우 모두 tsp() 함수 호출 시점에 argument로 전달되는 visited 값은 같겠지만, here 값이 달라지는데.. 오히려 반대로, 코드의 흐름상 결과적으로 일어나는 일은:tsp(c, {a, b, c}) 에서 tsp(d, {a, b, c, d}) + dist[c][d] tsp(b, {a, c, b}) 에서 tsp(d, {a, b, c, d}) + dist[b][d] 위 1번과 2번 사이의 비교 아닌가요..?이 경우 분명히 순서가 중요한 것 같아서 헷갈립니다! ㅎㅎ 좋은 강의 항상 잘 듣고 있습니다.감사합니다 🙂
-
미해결2주만에 통과하는 알고리즘 코딩테스트 (2024년)
투포인터 25:15 질문
투포인터 강의 25:15분 부터 나오는 설명에 대해 질문이 있습니다.0이 3개가 있는데0 + 0 이 왜 6.5가 되나요??그리고 6.5 + 0을 하는데6.5가 어디서 나오는지 이해가 안되었습니다.짜투리가 0이 3개면 그냥 0 아닌가요??
-
미해결해외 빅테크 코딩 인터뷰: LeetCode 포기자의 합격 공부법
조금만 더 고민하면 풀수 있을거 같을때
최대 10분 고민해보고 발상 안되면 넘어가서 발상할 수 있는 방법을 공부하라고 했는데, 막상하다보면 '아 이거 조금만 더 고민하면 해볼 수 있겠다' 란 마음이 들면서 그때부터 이리저리 시도해보고 코드 짜보고 그렇거든요? 이렇게 하다보면 한문제당 시간이 오래 걸리기도 하고요. 못풀때도 있고요. 이런경우 조언 부탁드려요.
-
해결됨카카오 코테 6주 합격! 실전 파이썬 코딩테스트
안녕하세요, print 방식에 대해 문의드립니다.
import sys my_input = sys.stdin.readline N = int(my_input()) [print(sum(list(map(int, my_input().split())))) for _ in range(N)]와 같이 리스트 컴프리헨션 내부에서 바로 print 되도록 코드를 작성했는데,일단 백준 기준으로는 통과가 됐지만 위와 같이 한줄 입력 시 바로 한줄이 출력이 되고 있어서요혹시 나중에 이런식으로 작성할 때 문제가 되는 경우가 있을까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-o 모듈러 연산 질문
"모듈러 연산은 마지막에 한 번만 수행하는 것과 중간중간 수행하는 것이 결과적으로 동일하다."라는 설명은, 아래 모듈러 연산의 성질을 이용하여 a를 cnt, b를 1로 가정했을 때를 의미하는 것인가요?1. [(a mod n)*(b mod n)] mod n = (a*b) mod n"덧셈과 곱셈으로 이루어진 연산에서 cnt %= n을 수행하면 된다" 라는 설명이 다소 헷갈려 질문드립니다.
-
해결됨38군데 합격 비법, 2026 코딩테스트 필수 알고리즘
다음 알고리즘의 경우 괜찮은 접근인지 궁금해요
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요? 1- 10어떤 알고리즘을 학습하고 계신가요? 1 - 10 2. 궁금한 부분def find_not_repeating_first_character(string): occurrence_array = find_alphabet_occurrence_array(string) for char in string: if occurrence_array[ord(char) - ord('a')] == 1: return char return "_" def find_alphabet_occurrence_array(string): alphabet_occurrence_array = [0] * 26 for char in string: index = ord(char) - ord('a') alphabet_occurrence_array[index] += 1 return alphabet_occurrence_array딩코딩코 선생님의 풀이와 다르게 반복된 값이 들어 있는 array에서 string의 element를 순회하면서 index의 빈도수를 조회하고 1이면 return 하도록 했는데 괜찮은 접근일까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-O 4949 문제 해석 질문있습니다.
http://boj.kr/1ceabe24da3440d0b9c019e393febde0위는 (. [ 사이의 공백을 처리하려는 코드입니다.(틀렸습니다 가 뜬 코드입니다. 공백을 처리하는 부분을 지우고 나니 맞았습니다 가 떳었습니다.)제가 공백을 처리하는 것을 dq로 관리했던 이유는 문제에서 '짝을 이루는 두 괄호가 있을 때, 그 사이에 있는 문자열도 균형이 잡혀야 한다.' 라는 조건 때문에 저는 [ first ] 가 입력을 주어졌었을 때 [first ] 이거나 [ first] 이런식의 반례가 있다고 생각해 공백도 처리를 하였는데 정답 코드를 보니 공백을 처리하지 않는거같습니다.저는 문제를 읽고 공백을 처리해야한다고 이해를 했는데 문제에서 어떤 조건 때문에 공백을 처리해도 되지 않는지 이해가 잘 가지 않습니다.또한 공백을 처리하지 않아도 된다는 힌트를 어떻게 얻는지 궁금합니다. 다른 문제에서도요..감사합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-V 누적합 질문
안녕하세요. 선생님. 문제는 다 이해가 됐는데 코드 시간때문에 질문 올립니다. 올릴때는 들여쓰기가 된줄 알았는데, 올리고 나서 적용이 안되는 줄 몰랐네요... void make1(int num, vector<int>& pSum, map<int, int>& pCount) { for (int interval = 1; interval < num; interval++) { for (int start = interval; start <= num + interval - 1; start++) { int sum = pSum[start] - pSum[start - interval]; pCount[sum]++; } } pCount[pSum[num]]++; // 전부 선택하는 경우 } void make2(int num, vector<int>& pSum, map<int, int>& pCount) { for (int start = 1; start <= num; start++) // 첫번째부터 출발 { for (int interval = 0; interval < num - 1; interval++) / { int tPSum = pSum[start + interval] - pSum[start - 1]; pCount[tPSum]++; } } pCount[pSum[num]]++; // 전부 선택하는 경우 } make1함수를 사용시 840ms정도 걸리고,make2함수 사용시 480ms정도 걸립니다. 두 코드 다 시행 횟수는 (n-1) * n + 1아닌가요? 왜 이럴까요...? 챗 지피티는 메모리 접근이 순차적이지만, '일정한 간격 유지'가 '인덱스 하나 고정 + 순차 증가'보다 cpu 캐시 히트가 더 유리해서 라는데, 혹시 제가 놓치고 있는 부분이 없을까요?
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
BOJ 1342 메모리초과 관련
from itertools import permutationsinfos = list(input())ans = 0for comb in set(permutations(infos)): ok = True for i in range(0,len(infos)-1): if comb[i] == comb[i+1] : ok = False break ans += okprint(ans)BOJ 1342번 문제를 다음과 같이 풀었는데 계속해서 메모리초과 때문에 오답처리가 나서 질문 남깁니다.permutations가 한 번에 모든 순열을 생성하기 때문에 메모리 문제가 발생한다고 GPT의 답변을 얻을 수 있었으나, 강사님의 풀이 1번에도 permutations가 있는데도 메모리초과가 나지 않고 정답처리가 나서 왜 이런 차이가 나는 지 궁금합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-V 누적합 질문
안녕하세요. 선생님. 문제는 다 이해가 됐는데 코드 시간때문에 질문 올립니다.void make1(int num, vector<int>& pSum, map<int, int>& pCount) { for (int interval = 1; interval < num; interval++) // 피자 조각을 몇 개를 더 이어서 고를 것인지, 전부 선택은 제외 { for (int start = interval; start <= num + interval - 1; start++) { int sum = pSum[start] - pSum[start - interval]; pCount[sum]++; } } pCount[pSum[num]]++; // 전부 선택하는 경우}void make2(int num, vector<int>& pSum, map<int, int>& pCount){ for (int start = 1; start <= num; start++) // 첫번째부터 출발 { for (int interval = 0; interval < num - 1; interval++) // 피자 조각을 몇 개를 더 이어서 고를 것인지, 전부 선택은 제외 { int tPSum = pSum[start + interval] - pSum[start - 1]; // 사이즈 pCount[tPSum]++; // 해당 사이즈 카운트 추가 } } pCount[pSum[num]]++; // 전부 선택하는 경우}make1함수를 사용시 840ms정도 걸리고,make2함수 사용시 480ms정도 걸립니다.왜 이럴까요...? 챗 지피티는 메모리 접근이 순차적이지만, '일정한 간격 유지'가 '인덱스 하나 고정 + 순차 증가'보다 cpu 캐시 히트가 더 유리해서 라는데, 혹시 제가 놓치고 있는 부분이 없을까요?
-
해결됨카카오 코테 6주 합격! 실전 파이썬 코딩테스트
3:30 - sys.stdin.readline 질문
my_input = sys.stadin.readline 으로 정의해주셨는데, 혹시 my_input = sys.stadin.readline() 이렇게 정의하고 list(map(int, my_input.split()))이렇게 쓸 수도 있나요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
백준 2178 질문 있습니다.
http://boj.kr/e8efaf05143848f897d8154f0609f71e현재 코드는 맞았습니다. 가 뜹니다. 맞은 이유가 // ios_base::sync_with_stdio(false); // cin.tie(NULL); // cout.tie(NULL);이렇게 주석처리를 하니까 맞더라구요.. 이것때문에 2틀정도 머리를 싸맸는데 왜 위 코드 3줄을 주석처리 한다고 맞았습니다 가 뜨는지 잘 이해가 안가는데 왜 그런것인가용??
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-K 펠린드롬 문제 2% 실패 반례좀 찾아주세요 ㅠㅠ
http://boj.kr/24eb99ddd0bb4e11af50a5e4579c8107 해당 문제에 대해서 진짜 많이 고민해보았는데, 원인을 알 수가 없습니다.. 기본적인 부분에서 틀린 것 같은데, 코드가 지저분한 것 같아서 그런지 봐도 문제가 무엇인지 잘 모르겠습니다 ㅠㅠ
-
해결됨코딩테스트 [ ALL IN ONE ]
LCA 관련해서 질문이 있습니다.
LCA 코드에서 left, right 변수는 방명록 (visited) 변수와 같이 방문한 값을 저장하기 위한 용도로 사용하는 것인 가요?!
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
"골동품 수집가 큰돌은 욕심쟁이야!!!" 문제
pq를 쓰지 않고, 골동품 가치를 내림차순으로 정렬하고 가방 무게를 오름차순으로 정렬해서 풀면 틀린 명제일까요??
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
섬나라 아일랜드 DFS
이전강의에서 풀엇던것처럼 ch체크 배열만들고 시계방향 9,12,3,6시 방향으로만 체크해서 이렇게 만들었는데강사님이 강의 때 하셧던거에 비하면 효율이 많이 떨어지는지 궁금해서 질문 남깁니다 package section9; import java.util.ArrayList; import java.util.Scanner; public class Main13 { static int[] dx= {-1,0,1,0}; static int [] dy= {0,1,0,-1}; static int[][] ch,dir,map; static int n,answer; public static void main(String[] args) { // TODO Auto-generated method stub Scanner s=new Scanner(System.in); ArrayList<Integer> list = new ArrayList<>(); answer=0; n=s.nextInt(); map= new int[n][n]; ch= new int[n][n]; dir= new int[n][n]; for(int i=0;i<n;++i) { for(int z=0;z<n;++z) { map[i][z]=s.nextInt(); } } for(int i=0;i<7;++i) { for(int z=0;z<7;++z) { if(map[i][z]==1 && ch[i][z]==0) { DFS(i,z); if(answer>1) { list.add(answer); answer=0; } }else { answer=0; continue; } } } System.out.println(list.toString()); System.out.println(list.size()); } static void DFS(int x,int y) { if(map[x][y]==1) { answer++; } if(ch[x][y]==1) return; if(map[x][y]==0) return; if(x<0 || x>6 || y<0 || y>6) { return; }else { ch[x][y]=1; for(int i=0;i<4;++i) { int nx= x+dx[i]; int ny=y+dy[i]; if(nx>=0 && nx<7 && ny>=0 && ny<7 && ch[nx][ny]==0 && map[nx][ny]==1) { DFS(nx,ny); } } } } }
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
이문제 union & find로 풀수 있는데 이경우 dfs와 비교했을때 시간복잡도는 어떤 접근법이 나은가요?
제목 그대로 union and find 알고리즘을 써서 이문제를 풀었습니다.풀이를 보니 dfs를 써서 푸는 방법도 있는거 같은데 어떤 접근법이 시간 복잡도가 더 낮은 가요?