- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 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 + 1 test case 로보면 정답이 맞는데, 왜 통과가 안되는걸까요?
안녕하세요, 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개 방향의 간선에 대해서만 정의한 이유가 있는지 궁금합니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 3-2 공통 원소 구하기(two pointers algorithm) 문제입니다. public List<Integer> solution(int n, int[] arr1, int m, int[] arr2) { List<Integer> answer = new ArrayList<>(); Set<Integer> set = new HashSet<>(); for(int i= 0 ; i<n; i++) { set.add(arr1[i]) } for(int i= 0 ; i<m; i++) { if(!set.add(arr2[i])) answer.add(arr2[i]); } answer.sort((o1, o2) -> {if(o1 < o2) return -1; else if(o1 == o2) return 0; else return 1;}); return answer; } 위는 제가 수업 전에 작성한 코드입니다. 1. HashSet으로 중복된 것을 거르고 List로 넣은 후에 2. List를 오름차순으로 정렬 순으로 코드를 작성했는데 마지막 테스트 케이스에 시간초과가 발생했습니다. [ 질문 ] sort때문에 시간 초과가 나는 것 같은데, 강사님 방법처럼 갖고있는 모든 원소를 sort하는 것보다 중복된 원소만 모아둔 뒤 sort하는 것이 덜 부담될 것이라 생각했는데 왜 시간초과가 나는 것인가요? 여기서 시간초과가 날 것이라는 것을 사전에 미리 알 수 있는 방법이 무엇일까요?
안녕하세요! 코테 준비가 처음이라 궁금한 점이 있어서 질문합니다. bits/stdc++.h 이 헤더파일을 넣고 하라고 하셨는데요, 시험볼때도 이렇게 작성해도 되나요? 대회나 시험을 볼 때는 시험보는 페이지에서 바로 코드를 작성해야 하나요? 아니면 제 노트북에 있는 vscode 나 devC++ 을 사용해도 되는건가요? 처음 준비하다 보니 기본적인 부분도 모르는게 많네요ㅠㅠ
인텔리제이 상에선 코드가 잘 돌아가며 정답이 나오지만 채점 사이트에서는 오답이라고 나옵니다. 코드 어디 부분이 문제가 되는지 잘 모르겠어서 질문 남깁니다. import java.util.*; public class Main { public String solution(String str){ String answer= "YES"; int len =str.length(); str= str.toUpperCase(); for(int i=0;i<len/2;i++){ if(str.charAt(i)!=str.charAt(len-i-1)){ return "No"; } } return answer; } public static void main(String[] args) { Main T = new Main(); Scanner kb = new Scanner(System.in); String str = kb.next(); System.out.println(T.solution(str)); } }
로직 자체는 쉽게 생각하고 강의도 이해할수 있었는데 전역변수와 지역변수에 따라 결과다 달라 왜 그런지 알고싶습니다 #include<bits/stdc++.h> using namespace std; typedef long long ll; //int cnt[26]; //string str; int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int cnt[26]; string str; cin >> str; for(char c : str){ cnt[c-'a']++; } for(int i = 0 ; i < 26; i++) cout << cnt[i] << " "; return 0; } 위 코드처럼 지역변수로 배열과 str을 선언하면 결과가 이렇게 나옵니다. 반대로 전역변수로 선언하면 답이 잘 나옵니다. 어떤 이유인지 알수 있을까요? 그리고 long long 타입을 쓰는곳이 없는데 typedef long long ll;을 왜 해주는지도 궁금합니다! 감사합니다
toString 을 쓰는 이유가 주로 어떨때 어떤 이유로 쓰이나요? 구글 쳐보니까 디버깅 용도외에는 안쓰는게 좋다 이러길래 우리가 사용하는 코테수준의 코드에서 어떤 용도와 어떤 이유로 쓰면 좋을지 알고 싶습니다. 특히 !! StringBuild 에서 쓰는 이유도요! StringBuild 를 이용하만 일반적인 String 이랑 형이 다르게 변하는 건가요?? 그리고 valueOf같은경우에 저는 주로 charArray 같은 경우를 나중에 String 으로 만들고 싶을때 주로 사용하거든요? StringValueOf(charArr) 이런식으로요 이 기능 외에도 쓰일때가 있나요? 코테 수준에서 ValueOf의 주 기능이 알고싶어요 있다면 알려주시면 정말 감사하겠습니다.
http://boj.kr/e76755768b7d48568716ed808c81ad36 문제는 풀었습니다!ㅎㅎ 다만 이해가 안가는 부분이 있는데 다 구현하고 나서 정렬할 때 cmp라는 사용자 정의 연산자를 만들어서 pair의 first값은 오름차순으로 pair의 second값은 내림차순으로 만들고 싶어서 링크의 코드 처럼 구현을 했는데 왜 bool cmp(const pair<int, int>& a, const pair<int, int>& b) { if (a.first == b.first) { return a.second > b.second; 라고하면은 second는 내림차순으로 정렬되고 } return a.first < b.first; 라고 하면은 first값은 오름차순으로 정렬되는지 } 이해가 잘 안갑니다.
안녕하세요 강사님. 인구 이동 문제 시간복잡도에 대해서 질문드립니다. N이 최대 50으로 모든 나라를 탐색한다고 가정하면 2500. 인구이동의 횟수는 최대 2000. 연결 컴포넌트를 구해야하기 때문에 방문 처리를 해주므로, 시간복잡도가 2500 * 2000으로 생각했습니다. 맞을까요?
while(i > 0){ a += i; i /= 2; } 위 코드에서 i가 계속 나뉘어 져도 0보단 크니까 무한히 돌아가는걸로 이해했는데 강의에선 아니여서 질문 남깁니다..! i = 4 이면 i가 2->1->0.5->0.25 ... 이렇게 되는게 맞지만 int형 변수이기 때문에 그냥 0으로 처리되어서 종료조건을 만족하는것인가요?
항상 감사히 듣고 있습니다. 틀린 코드 http://boj.kr/89f3498f8d764bc28b21da4a0e6b6844 맞는 코드 http://boj.kr/af18217ef5ac4519b765ccdc934c208c 차이는 LIS의 max값을 구하는 maxi와 index값을 전역변수로 두냐 안두냐로 78%에서 segfault가 발생합니다. 크게 상관이 없는거 같은데 왜일까요? 지역변수일때 초기화 안해줘서 그런가요?