묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
3번이 안풀립니다
import sysimport copy#sys.stdin=open("input.txt","rt")'''#3번이 틀림n =int(input())li1 = [list(map(int, input().split())) for _ in range(n)]cpy =copy.deepcopy(li1) #깊은 카피를 사용m=int(input())tot=s=0e = n#print(cpy)#li1 회전for i in range(m): li2 = list(map(int, input().split())) print(li2) if li2[1] == 0: #왼쪽으로 회전 for j in range(n): if j-li2[2] < 0: li1[li2[0]-1][j-li2[2]+n] = cpy[li2[0]-1][j] else: li1[li2[0]-1][j-li2[2]] = cpy[li2[0]-1][j] if li2[1] == 1: #오른쪽으로 회전 for j in range(n): if j+li2[2] < n: li1[li2[0]-1][j+li2[2]] = cpy[li2[0]-1][j] else: li1[li2[0]-1][(j+li2[2])%n] = cpy[li2[0]-1][j]#print(li1) for i in range(n): for j in range(s,e): tot += li1[i][j] if i < n//2: s+=1 e-=1 else: s-=1 e+=1print(tot) 다음과 같이 풀때, 1245번은 정답이 뜨는데 3번만 틀린ㄴ값으로 뜹니다..뭐가 틀린지 모르겠습니다..알려주세요..
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
5번 틀림
5번만 틀렸는데, 어느부분에서 틀렸는지 모르겠습니다.. 알려주세요 .. 아래는 제가 짠 코드입니다n = int(input())max = -1tot,tto = 0,0li = [[0]*n for _ in range(n)] # n의 크기를 가지고 0으로초기화된 리스트를 n번 반복for i in range(n): li[i]= list(map(int, input().split()))for i in range(n): if sum(li[i]) > max: max = sum(li[i]) for j in range(n): for i in range(n): tot += li[i][j] tot = 0 if tot > max: max = tot for i in range(n): tot += li[i][i] tto += li[i][n-i-1] if tot > max: max = tot if tto > max: max = ttoprint(max)
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-T 맞왜틀 질문있습니다.
어떻게 테스트 케이스는 다 통과하는데 1%에서 틀리는데 이유를 모르겠습니다. 제가 어디서 잘못했을까요?한 이틀정도 박았는데 도저히 모르겠습니다...http://boj.kr/360ff010bbfb4bde8218e80bc42b796f감사합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-H 맞왜틀
https://www.acmicpc.net/source/87670511 어느 부분이 잘못된 건지 찾지를 못하겠어요..
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-D,E,F,G,H,I 질문 있습니다
안녕하세요 큰돌님, 현재 큰돌님 영상 보며 코테 준비하는 학생입니다. 다름이 아니라 이번 3주차 DEFGHI를 풀면서 그나마 쉬운거는 저만의 코드로 짰다가 큰돌님 영상을 보고 난 뒤 효율적인 코드로 바꾸고. 좀 어렵겠다 싶은거는 고민하다가 모르겠어서 강의를 통해 해설을 확인했습니다.결국 DEFGHI중 제가 온전히 풀어낸 것 하나 없이 모두 큰돌님 해설만 보고 풀어낸 것이라 이게 괜찮은 것일지... 여쭈어보고싶습니다. 다만 이런 식으로 해설을 많이 참조한 문제들은 완강하고 난 뒤 다시 풀어 볼라고 다 체크해두고 있습니다! 결론 : 6문제 연속 제대로 못풀고 해설을 보는데 괜찮을까요
-
해결됨독하게 C를 배운 사람을 위한 선형 자료구조
04_MultiIndex 예제에서 질문이 있습니다
안녕하세요 강사님!SearchByIndexAgeRange 함수 안에 있는 코드를 다음과 같이 바꿔서 사용해도 될 것 같아서 변경해보았습니다. void** SearchByIndexAgeRange(int min, int max, unsigned int* pCount) { // unsigned int cntTotal = 0; // USERDATA** aList = (USERDATA**)MakeIndexAge(&cntTotal); unsigned int cntTotal = GetListCount(); USERDATA** aList = g_idxListAge; // 중략... }혹시 이 방식 대신 MakeIndexAge를 사용하신 이유가 있으실까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-E 질문드립니다!
http://boj.kr/25e64897950d400190abb19ae2bf48b1 제가 해당 문제를 풀 때 map 을 사용해서 풀었는데 map 이 key를 기준으로 sort 되기도 하고 그래서 생각난게 이거라 이걸로 풀었거든요 근데 선생님거보니 count 배열로 푸시더라고요 count 배열로 푸는 게 좀 더 깔끔한 방법일까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-C 질문있습니다!
http://boj.kr/695c79fb3ead4e45b95b27b6f0fc5eb1 저 같은 경우에는 minTime 과 maxTime 을 구해서 최소 시간과 최대 시간 사이만 반복문을 돌리도록 처리했고 cost 배열을 따로 만들었는데 선생님 코드에 경우 A,B,C로 만들고 1~100까지 그냥 돌리셨더라고요 그래서 질문이 제 방식대로 하는 것보다 그냥 선생님 방식대로 시간 초과가 안나는 범위 내에서는 전체순회를 돌도록 하는 코드를 짜는 습관을 들여놓는게 좋을까요..?사실상 100개뿐이라 그냥 저런 경우에는 전체 다 순회하도록 습관을 들여놓는게 나중에 문제 풀 때 이득이 있을까요.. 알고리즘 뉴비라서 여쭤봅니다ㅠ
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
1-5 알고리즘과 친해지기 (2) - 최빈값(알파벳) 구하기
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요?: 1-5 알고리즘과 친해지기 (2) 어떤 알고리즘을 학습하고 계신가요?: 최빈값 찾기(알파벳)여기까지 이해하신 내용은 무엇인가요?: 'a' -> ord('a') -> 97 -> chr(97) -> 'a' 이고, 'A' -> ord('A') -> 65 -> chr(65) -> 'A' 이다. 아스키 코드를 활용하고, 가장 기본이 되는 원리는 이렇다.0이 26개인 배열(a_o_a)을 만들고, 주어진 문자열(string)을 반복문으로 순회한다. (for char in string: ... )ord('a') - ord('a') = 0 이고, ord('b') - ord('a') = 1 이고, ... 이 원리에 따라 ord(char) - ord('a') 를 하면, char가 몇 번째 순서의 알파벳인지 구할 수 있다. 이를 0이 26개인 배열(a_o_a)의 인덱스(i)로 활용한다.string을 반복문으로 순회하면서, (만약 숫자나 띄어쓰기가 아니고 알파벳이라면) a_o_a[i] += 1 을 한다. a_o_a 에 각 알파벳의 빈도수가 저장이 된다.a_o_a를 반복문으로 순회하면서, max_alphabet_index를 구한다.chr(max_alphabet_index + ord('a')) 을 하면 최종적으로 최다 빈도수인 알파벳이 구해진다. 2. 어려움을 겪는 부분 저는 string.count(char)를 이용하여 풀었습니다. 그런데 이 아스키 코드 원리를 활용한 알고리즘이 많이 출제되나요? 코테 출제하시는 분들께서 아스키 코드를 활용한 로직을 더 선호하시는지 궁금합니다!
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
오류원인?
파이썬 decimal() 함수를 모르는 상태에서 if i == '0' or i == '1' or i == '2' or i == '3' or i == '4' or i == '5' or i == '6' or i == '7' or i == '8' or i == '9': tmp+=i int(tmp)이렇게 코드를 짰다고 했을때 ValueError: invalid literal for int() with base 10:오류가 뜹니다.. 숫자만 골라서 int 형변환 했는데 왜 오류가 뜰까요..?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-G, 문제해설 코드 질문
<알고리즘에 올라와 있는 코드>#include <bits/stdc++.h> using namespace std; typedef long long ll; const ll INF = 1e18; int n, c, a[1004]; vector<pair<int, int>> v; map<int, int> mp, mp_first; bool cmp(pair<int,int> a, pair<int, int> b){ if(a.first == b.first){ return mp_first[a.second] < mp_first[b.second]; } return a.first > b.first; } int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> n >> c; for(int i = 0; i < n; i++){ cin >> a[i];mp[a[i]]++; if(mp_first[a[i]] == 0) mp_first[a[i]] = i + 1; } for(auto it : mp){ v.push_back({it.second, it.first}); } sort(v.begin(), v.end(), cmp); for(auto i : v){ for(int j = 0; j < i.first; j++){ cout << i.second << " "; } } return 0; } 여기서typedef long long ll; const ll INF = 1e18;이 코드가 왜 필요한지 궁금합니다.또한, 입력에서 a[1004]배열을 왜 사용하는 것인지도 궁금합니다. 배열이 아닌 정수형 변수에 입력값을 저장한 후 카운트 map의 키로 사용해도 되는데 배열을 사용한 이유가 궁금합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-f, 2828번 문제 다른 풀이
https://www.acmicpc.net/source/87639259 이런 방법으로 코드를 작성해도 될까요? 백준 통과는 됐어요.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-J 질문 있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하십니까 선생님, dfs와 bfs 모두로 풀어보았는데 메모리 사용량과 시간에서 매우 큰 차이가 있었습니다. 이유가 무엇인지 잘 모르겠습니다.. 그리고, 이 문제와 별개로 코테에서 dfs의 재귀 호출 깊이가 최대를 초과하여 스택 오버플로우가 발생하는 경우가 있는지 궁금합니다.-bfs 풀이 :http://boj.kr/940ad337e569487fb45a14a7a12056c1-dfs 풀이 : http://boj.kr/040664103f534e71b0fddaf7eb282614
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
Connected Component 코드
안녕하세요 , 방향벡터를 이용해서 맵을 탐색하는 코드를 변경해서 Connected Component코드를 작성해 봤는데 코드는 제가 예상한 것처럼 잘 돌아갑니다. 제 코드에서 수정해야할 부분이 있을까요?#include <bits/stdc++.h> using namespace std; const int V = 3; bool m[V][V], visited[V][V]; int dy[] = { -1, 0, 1, 0 }; int dx[] = { 0, 1, 0, -1 }; int cnt; void go(int y, int x) { cout << y << " : " << x << "\n"; 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 >= 3 || nx < 0 || nx >= 3) continue; if (visited[ny][nx]) continue; if (m[ny][nx]) go(ny, nx); } return; } int main() { for (int i = 0; i < V; ++i) { for (int j = 0; j < V; ++j) { cin >> m[i][j]; } } for (int i = 0; i < V; ++i) { for (int j = 0; j < V; ++j) { if (m[i][j] && visited[i][j] == 0) { cnt++; cout << "ConnectedComponet: " << cnt << "\n"; go(i, j); } } } return 0; }
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
1주차 숙제 두번째 문제 풀이에서..
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요? 1-11 2. 어려움을 겪는 부분첫 시도에서 count_to_all_zero 와 count_to_all_one이 모두 1이 나오는 이유가 첫번째 문자에 대해서 비교를 안하고 있다고 나와있는데,첫번째 문자가 아니라 맨 마지막 문자를 비교 안하고 있는 것이 아닌가 궁금합니다! 첫 시작에서는 0번째 인덱스와 1번째 인덱스를 비교하지만마지막 len(string) - 1번째 인덱스와 len(string)를 비교할 때는 마지막 문자에 대한 카운팅이 이루어지지 않는게 아닌가 하는데.. 제가 잘못 이해하고 있는걸까요..? ㅠㅠ
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
1-10 문제 이런 접근은 어떤가요?
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요? 1-10 2. 어려움을 겪는 부분재취준을 준비하면서 여러 기업의 코딩테스트를 봤었는데요.항상 시간 예외성 검사에 걸려서 코딩테스트를 탈락합니다.그래서 이 문제를 보면서도 시간을 최대한 줄이고자 노력했습니다. 3. 시도해보신 내용input = "abadabac" def find_not_repeating_first_character(string): while True: found_flag = False if len(string) > 1: target_char = string[0] for compare_char_index in range(1,len(string)): if target_char == string[compare_char_index]: found_flag = True break if found_flag: string = string.replace(target_char, "") else: return target_char else: return "_" result = find_not_repeating_first_character print("정답 = d 현재 풀이 값 =", result("abadabac")) print("정답 = c 현재 풀이 값 =", result("aabbcddd")) print("정답 =_ 현재 풀이 값 =", result("aaaaaaaa")) 제가 봐도 가독성이 안좋긴한데.. 저는 이 문제를 풀면서 가장 먼저 생각한 것이 '이미 한번 훑은 알파벳에 대해서는 순회를 제외한다' 였거든요.그런데 글을 쓰면서 다시 확인해보니 string을 replace할 때 오히려 더 시간이 늘어날 것 같기도 하구요.. ㅠㅠ for문의 대상이 되는 객체를 for문 안에서 변경할 수 없기에 부득이하게 found_flag라는 변수를 선언해서 for문 밖에서 판단 후 replace 하는 식으로 코드를 작성했습니다. 궁금한 점이, 딩코딩코님은 이 접근법에 대해서 어떻게 생각하시나요? 저는 정말 간단할 수 있는 문제를 20분 정도의 시간을 고민하면서 풀었는데, 이런 부분 때문에 실제 코딩테스트를 응시할 때도 시간이 부족했습니다.. ㅠㅠ 코딩테스트를 보면 1 <= N <= 1,000,000,000이런 식으로 제한을 두다 보니.. '길이 1억의 string이 주어졌을 때 전부 순회하면 시간이 너무 길어지지 않나..?' 하는 생각이 항상 발목을 잡는 것 같습니다.. 이런 문제를 접근할 때 어떤 식으로 접근해야 할지 조언 부탁드립니다..항상 좋은 강의 감사드립니다!! (_ _)
-
미해결김영한의 실전 자바 - 중급 2편
7번 장바구니 문제의 minus() 메서드 로직 관련
[질문 내용]문제 7 - 장바구니 문제에서, minus 메서드를 보면 찾으려는 product가 존재하지 않는 경우에도 cartMap.remove()를 호출하도록 되어 있습니다. 존재하지 않는 것을 지우고자 하는 게 불필요하게 메서드를 호출하는 게 아닌가 싶은데, 예제를 쉽게 만들기 위한 선택인가요, 아니면 실무에서 저렇게 결과를 찾을 수 없어도 지우도록 하는 코드를 작성해도 문제가 없는 건가요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
안녕하세요 큰돌님 강의 학습 방법에 대해서 질문이 있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 다른 질문글들도 많이 보았고 큰돌님 말씀대로 c++교안도 1회독 진행한 상태입니다.0주차 개념강의 + 1주차 개념강의들도 전부 보았습니다.이제 1-A 강의 차례인데요.다른 공부법 질문글들에 답변에는 해당 문제를 먼저 풀어보고 안되면 그때 강의를 보라고 하셨는데해당 강의에 해당하는 문제는 알고리즘_문제해설.pdf파일을 보고 해당 문제를 직접 찾아서 문제를 풀면되는건가요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-C 질문있습니다
안녕하세요! 강의영상과를 다르게 void형 dfs로 풀긴했는데 왜 어느부분이 문제인지 잘 모르겠습니다..https://www.acmicpc.net/source/share/b115b1f7228b4af78b7cb918eb678018
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
리스트 선언
cnt =[0]*(n+m+3)로 리스트를 선언하셨는데, 저는 문제 풀때 cnf = list()로 선언했는데 Traceback (most recent call last): File "C:\Users\User\Desktop\파이썬 TEST\AA.py", line 38, in <module> cnt[i+j] += 1IndexError: list index out of range오류가 나더라고요해당 선언을 하면 왜 오류가 나는것인가요..? 이렇게 해도 문제는 풀려야하지 않나요..? 의문점이 남아서 질문올립니다