묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
1개의 테케에서 런타임오류가나는데 왜인지 모르겠습니다.
import java.util.HashMap; import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner sc= new Scanner(System.in); String a = sc.next(); String b = sc.next(); HashMap<Character,Integer> map = new HashMap<>(); String answer="YES"; for(char x: a.toCharArray()) { map.put(x, map.getOrDefault(x,0)+1); } for(char x: b.toCharArray()) { if(!map.containsKey(x) || map.get(x) == 0) answer="NO"; map.put(x, map.get(x)-1); } System.out.println(answer); } }4-2입니다. 현재 이 상태인데, 한개의 테케에서 런타임오류가 뜨는데 테케가 뭔지 볼수가 없어 왜인지 원인을 못찾겠습니다. 도와주세요
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
논리질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 주사위 윷놀이 문제 보고서http://boj.kr/7a485f4fb46842189dc2ce91d1db7c91 이렇게 생각을 했는데, 처음 입력받은 이동 거리를 각 말로 이동해보고, 이동 장소에 가장 높은 숫자가 있는 말을 이동하려는 그런 방식으로 꾸미려 하던 중에 구현을 어떻게 해야할지 잘 떠오르지 않아 강의를 보았는데, 완전 다른 논리로 푸시는 걸 보고, 제가 생각한 방식에 대해 강사님의 생각을 들어보고 싶습니다. (아직 구현을 하다 말아서 코드가 다 있지 않은 점 양해 부탁드립니다..)
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-A 일곱난쟁이 문제 질문있습니다!!
안녕하세요. 큰돌 선생님!!강의 잘듣고 있는 학생입니다! 다름이 아니라, 선생님께서 알려주신 내용들을 바탕으로 저의 식대로 한번 짜보았는데요.아래 코드를 백준에서 돌리면 결과는 잘 나오는데 틀렸다고 나오더라구요. 어디서 틀린건지 도저히 모르겠어서 질문드립니다. 코드는 선생님이 알려주신 내용 바탕으로 짠거라서 바로 아실꺼라고 생각합니다!! 답변 부탁드리겠습니다. 감사합니다. /*문제왕비를 피해 일곱 난쟁이들과 함께 평화롭게 생활하고 있던 백설공주에게 위기가 찾아왔다. 일과를 마치고 돌아온 난쟁이가 일곱 명이 아닌 아홉 명이었던 것이다.아홉 명의 난쟁이는 모두 자신이 "백설 공주와 일곱 난쟁이"의 주인공이라고 주장했다. 뛰어난 수학적 직관력을 가지고 있던 백설공주는, 다행스럽게도 일곱 난쟁이의 키의 합이 100이 됨을 기억해 냈다.아홉 난쟁이의 키가 주어졌을 때, 백설공주를 도와 일곱 난쟁이를 찾는 프로그램을 작성하시오.입력아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다.출력일곱 난쟁이의 키를 오름차순으로 출력한다. 일곱 난쟁이를 찾을 수 없는 경우는 없다.*/ #include<bits/stdc++.h> using namespace std; vector<int> height; int sum_height = 0; const int total_height = 100; //난쟁이수, 일곱난쟁이키의 합 void printV(vector<int> &v) { vector<int> ::iterator iter; for(iter = v.begin(); iter != v.end(); iter++) { cout << *iter << "\n"; } } int main() { for(int i = 0; i < 9; i++) //난쟁이수는 9명 { int k; cin >> k; sum_height += k; height.push_back(k); } //cout << sum_height << endl; sort(height.begin(), height.end(), less<int>()); //printV(height); for(int i = 0; i < 9; i++) //난쟁이수는 9명 { for (int j = 0; j < i; j++) { if(height[i]+ height[j] == sum_height - total_height) { // cout << i << " "<< j<< " " << sum_height - total_height << endl;// cout << height[i] << " " << height[j] << endl; height.erase(height.begin() + i); height.erase(height.begin() + j); break; } } } printV(height); return 0; }
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
연속된 자연수의 합(수학) - 이렇게 풀어도 괜찮을까요?
public int solution(int n) { int answer = 0, sum = 0, lt = 1; for(int rt=1; rt <= n/2+1; rt++) { sum += rt; if(sum == n) answer++; while(sum >= n) { sum -= lt++; if(sum == n) answer++; } } return answer; }이렇게 해도 정답이 되었습니다. 문제가 풀리긴 했지만 좋은 답인지는 잘 몰라서 문의드립니다.
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
그래프와 탐색- 4. 미로탐색 시간복잡도 관련
안녕하세요 항상 좋은 강의 잘 듣고 있습니다!선생님께서 가르쳐주신 풀이 방식이 생각한대로 나름 직관적(?)이여서 다른 문제에서도 잘 사용하고 있는데 아무래도 재귀방식이다보니 시간복잡도에서 시간초과가 발생합니다. 이러한 DFS 방식에서 시간복잡도를 낮추는 방법이 있을까요?또한 선생님께서는 이러한 문제 풀때 시간복잡도 관련해서 어떻게 해결하시나요?(예를들어 다른 풀이방식을 선호한다던지.. 등등)
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
이분검색 while문 조건
안녕하세요 강사님 수업을 듣다가 궁금한 점이 생겨서 질문드립니다.while문의 조건이 lt<=rt: 인데 lt>rt가 되는 경우는 탐색이 완료되는 동안에는 없을것같아서 while문의 조건을 true로 하고 실행 시켜봤는데 채점프로그램을 돌려보면 오류가 발생합니다.true가 아니라 lt<=rt를 써야되는 이유가 어떤 상황일까요
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-A 반례를 알고 싶습니다
http://boj.kr/2ee36f4f84574c92a5029deb708602c6일반 가정 집과 치킨 집 좌표를 구해두고 거리를 구한 다음 y에는 가정집 기준, x에는 치킨집 기준의 거리를 2차원 vector d에 넣어줬습니다.최소값을 구해야하기 때문에 같은 x의 y값( 즉, 치킨집을 기준으로 모든 집과의 거리)의 합을 구하여 v vector에 넣었습니다. v는 <치킨집번호, 총거리의합>으로 담았습니다.--> 이제 v[1].first에는 1번 치킨집이라는 정보, v[1].second에는 1번 치킨집과 모든 집과의 거리의 합이 들어가게 됩니다.v를 v.second(치킨집과 각 집의 총거리의 합)를 비교하는 함수로 sort하고 m만큼 반복(입력한 남아 있을 최대 치킨 집의 수) 가정집과 first(치킨집번호)에 해당하는 거리를 min 함수를 이용하여 최소값을 구한 뒤 ret에 더해줍니다.TC 모두 통과하기도 했고 논리적으로 오류가 없다고 생각했는데 틀렸다고 하여 반례 질문드립니다! 설명이 너무 장황했다면 죄송합니다ㅜ
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-T 낚시왕 질문있습니다..
안녕하세요 선생님,매번 선생님 정답코드 보기전에 먼저 충분히 코딩해보고 안되면 정답보는 식으로 수업을 듣고있습니다.이번 낚시왕 문제같은경우 상어가 움직이는 로직을 좀더 신경써서 나름 코딩을 했고, Test Case와 개시판 모든 반례들을 다 통과했는데, 제출하자마자 바로 틀렸다고 나오네요..제가 무엇을 놓치고 있는지 알려주시면 감사합니다.선생님이 강의해주신 논리가 비슷한거같은데 제 코드는 제대로 계산하지 못한 반례가 있을까요..?http://boj.kr/504e729dba00420a807fdcc3a57d2fde 항상 좋은 강의 감사합니다 ㅠㅜ
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-R 질문 있습니다.
제가 수업을 듣다가 중간중간 출력을 찍어보면서 담기는 내용을 좀 파악하고 있는데요,,코드에서 adj[54] 배열에 데이터가 담기는 과정을 출력해보고 싶은데 어떻게 코드를 작성해야 adj 배열을 출력해볼수 있는지 궁금합니다.
-
해결됨it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
41.연속된 자연수의 합 문제풀이에서 수학적인 원리를 모르고 있습니다.
코드가 이해가 안되는 것이 아니라 수학적인 원리를 모르고있습니다.왜 15-3 = 1212%2 == 012/2 = 61+6, 2+6 즉 7,8로 가능하다는 결론이 나오는 수학적인 원리가 무엇인가요?그냥 공식이 그런것이니 외우면 되는 것일까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
매개변수 값의 수정
p.108 Array의 요소 수정하기함수에 매개변수로 전달할 때, 배열은 왜 int &a[] 형태가 아닌 int *a 로 전달해야하나요?배열을 매개변수로 전달할때,int a[] | int a[size] | int *a이렇게 세 가지 형태로 전달해서 수정이 가능하다면, 결국 배열은 참조로 전달 해야지만 값을 변경할 수 있는 다른 타입들과는 다르게 매개변수로 주어졌을 때 항상 값이 변할 수 밖에 없는건가요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1 - N : 1629 문제 질문
안녕하십니까, 큰돌님 코딩 테스트 강의를 수강하고 있는 박찬영 수강생입니다.큰돌님1-N: 1629 곱셈 문제 질문 드립니다.테스트 코드는 잘 돌아가는 데 문제가 계속 틀렸다고 해서 질문 드립니다. 하기에 작성한 코드 링크 남겨두었습니다.https://www.acmicpc.net/submit/1629/54973440항상 좋은 가르침을 주셔서 감사합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-A 문제 질문
http://boj.kr/30fb42b6aa1946dea6fb4494acefe8d0해당 풀이가 틀린 이유를 모르겠습니다.
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
증가 수열 만들기 ( deque 사용 ) 코드 질문
전 시간에 deque 구조를 배워서한번 이용해봤습니다 처음에 맨왼쪽과 맨오른쪽 비교하여 제일 작은 값을 구하고 (tmp) 1부터n까지의 수열이니까 제가 구한값 tmp 에 1씩 증가시켜 n까지 반복 코드의 효율성면에서 문제될 것이 있을까요?
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
스택프레임 관련 질문드립니다.
안녕하세요 항상 강의 잘 듣고 있습니다.5.합이같은 부분집합 문제에서 flag 변수를 이용해서 yes가 나오면 스택에 남아 있는 함수들만 호출되고 다른 재귀호출은 없이 끝내셨는데 혹시 아래 풀이에서와 같이 for, while의 반복문에서 break를 사용하면 불필요한 재귀호출 없이 끝낼 수 있나요?아래 풀이는 프로그래머스 스킬트리 문제 풀이에서 발췌했습니다!for (let i = 0; i < skillTree.length; i++) { if ( mySkillSet.has(skillTree[i]) && skillTree[i] === mySkill[mySkillIndex] ) { mySkillIndex++; } else if (mySkillSet.has(skillTree[i])) { canSkill = false; break; } }
-
해결됨IT 기업 취업을 위한: 코딩테스트 혼자서 정복하기 (C/C++)
입력함수 출력함수 관련
안녕하세요 좋은 강의 감사합니다.수업 중 코드 작성 부분을 보면 #include <iostream>을 하지만입력 함수로는 scanf 출력 함수로는 printf 를 사용하십니다.혹시 왜 그런지 이유를 알 수 있을까요?C++로 작성한다면 cin, cout 등이 있음에도 왜 C에서 사용하는 입출력 스트림을 사용하는지 궁금합니다.
-
미해결코테 출제자가 알려주는 [코딩 테스트 with 파이썬]
이분탐색-1 풀이및정답확인
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. def my_solution_budget(N,n, M): if sum(n) < M: return max(n) else: base = M // N while True: new_n = [] for i in n: if i > base: new_n.append(base) else: new_n.append(i) if sum(new_n) > M: return base - 1 else: base = base + 1test case 로보면 정답이 맞는데, 왜 통과가 안되는걸까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2주차 개념 #9 깊이우선탐색 예제 질문 입니다.
안녕하세요,2주차 개념 #9 깊이 우선 탐색 예제 구현하면서인접리스트(벡터로) 구현시 각 정점의 인접요소를 정의하는 부분이 main 함수에 있는데요저는 모든 간선(4개)을 양방향으로 아래와 같이 입력하였는데adj[1].push_back(2); adj[1].push_back(3); adj[2].push_back(1); adj[2].push_back(4); adj[2].push_back(5); adj[3].push_back(1); adj[4].push_back(2); adj[5].push_back(5);예제에서는 일부는 단방향으로만 입력이 되어있더라구요adj[1].push_back(2); adj[1].push_back(3); adj[2].push_back(4); adj[4].push_back(2); adj[2].push_back(5);DFS 특성상 Depth가 더 깊은 요소에 접근이 되려면 부모노드를 거칠 수 밖에 없긴한데 5개 방향의 간선에 대해서만 정의한 이유가 있는지 궁금합니다.
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
options - configure idle 이 없습니다 ㅠ
새로 실행할때 마다 나오는 저장문구를 없애고 싶은데 강의 대로 options 을 눌러도 configure IDLE이 나오지 않습니다
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
질문 드립니다.
BFS에서 queue 배열 활용 할 때, shift로만 처리하시던데,pop을 사용하면 어떤 차이가 있을까요???단순히 해당 Level에서 처리하는 순서만 달라지지, 층 먼저 탐색한다는 BFS 개념에 위배되지는 않다고 생각해도 맞을까요?