학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 제네릭 메서드에서는 <Dog>가 타입추론으로 생략이 가능하다고 하셨는데 WildCardEx.<Dog>printGenericV1(dogBox); 와일드 카드의 경우에는 <타입> 해당 부분에 대해서는 설명을 안해주셨는데 와일드카드의 경우에는 "<타입>" 은 어떻게 되는 건가요?? 항상 생략인건가요..??? WildCardEx.printWildCardV1(dogBox);
2870 반례부탁드립니다. - 인프런 (inflearn.com) 재질문입니다. 제시해주신 비교함수로 하니 성공을 했습니다. 그런데 제 로직은 어디서 잘못되었나요?제가 이해하기로제시해주신 로직은 size가 다르다면, 그 크기에 대해서 참 거짓 판별 size가 같다면, a와 b의 모든 자리수를 비교하여, 참 거짓 판별 인것 같습니다.제 로직또한 비슷한 로직 같습니다...어디서 잘못되었을까요?
우선 제 로직은 // stk이 비어있는 경우 // ch가 열린 괄호인 경우 // push(ch); // ch가 닫힌 괄호인 경우 // push(ch); break; // stk이 비어있지 않은 경우 // ch가 열린 괄호인 경우 // top()이 닫힌 괄호인 경우 && 형태가 다름 // top()이 닫힌 괄호인 경우 && 형태가 같음 // top()이 열린 괄호 && 형태가 다름 // top()이 열린 괄호 && 형태가 같음 // ==> 위의 4경우 모두 push(ch); // ch가 닫힌 괄호인 경우 // top()이 닫힌 괄호인 경우 && 형태가 다름 // top()이 닫힌 괄호인 경우 && 형태가 같음 // ==> 위의 2경우 모두 push(ch); // top()이 열린 괄호인 경우 // 형태가 다른 경우 // break; // 형태가 같은 경우 // pop(); 이후// stk이 비어있는 경우 // yes// stk이 비어있지 않는 경우 // no입니다. #include <bits/stdc++.h> using namespace std; int main(){ string input; getline(cin,input); string ret; while(input!="."){ stack<char> stk; for(int i=0;i<input.size();i++){ char ch=input.c_str()[i]; if(ch!='('&&ch!=')'&&ch!='['&&ch!=']') continue; // stk이 비어있는 경우 if(stk.empty()){ // ch가 열린 괄호인 경우 if(ch=='('||ch=='['){ // push(ch); stk.push(ch); } // ch가 닫힌 괄호인 경우 else{ // push(ch); break; stk.push(ch); break; } } // stk이 비어있지 않은 경우 else{ // ch가 열린 괄호인 경우 if(ch=='('||ch=='['){ // top()이 닫힌 괄호인 경우 && 형태가 다름 // top()이 닫힌 괄호인 경우 && 형태가 같음 // top()이 열린 괄호 && 형태가 다름 // top()이 열린 괄호 && 형태가 같음 // ==> 위의 4경우 모두 push(ch); stk.push(ch); } // ch가 닫힌 괄호인 경우 else{ // top()이 닫힌 괄호인 경우 && 형태가 다름 // top()이 닫힌 괄호인 경우 && 형태가 같음 // ==> 위의 2경우 모두 push(ch); if(stk.top()==')'||stk.top()==']'){ stk.push(ch); } // top()이 열린 괄호인 경우 else{ // 형태가 다른 경우 if(stk.top()=='('&&ch==']'){ // break; break; } else{ // 형태가 같은 경우 // pop(); stk.pop(); } } } } } // stk이 비어있는 경우 if(stk.empty()){ // yes ret+="yes\n"; } // stk이 비어있지 않는 경우 else{ // no ret+="no\n"; } getline(cin,input); } printf("%s",ret.c_str()); return 0; } 거의 대부분의 반례를 넣어도 통과가 됩니다. 어디서 잘못되었나요?
http://boj.kr/8c16deca7aff40bf8ebcac1951088706 코드는 이렇게 작성했습니다. vscode에서 입력을 복사해서 실행해보면 이런식으로 kakuna가 짤려서 나오고 중간에 피카츄가 들어가버립니다.. 틀린줄 알고 한참 고민했는데 백준에 제출하면 정답이라고 뜨네요.. 설정이 잘못된걸까요??
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. http://boj.kr/b8d40cd1c6794ac0adc55bc9ef2d56f8 안녕하세요. 강의 기반으로 2차원 배열로 문제를 풀어봤는데 어떤 오류가 있는지 궁금합니다!
해당 강의에서 강사님꼐서 IDE를 통해 만드신 hashCode() 오버라이드 메서드는 Object.hash() 함수를 사용했는데요. 저도 똑같이 IDE를 통해서 만들었는데, Object.hashCode() 라는 다른 메서드를 사용해서 만들어 주더라고요. 둘 다 실험해보니까 잘 작동하긴 했는데, 두 메서드의 차이점이 무엇인가요? 왜 강사님이 하실때는 hash() 메서드가 뜨고 제가 할 때는 hashCode() 메서드를 이용해서 만들어 줄까요?
static class AscComparator implements Comparator<Integer>{ @Override public int compare(Integer o1, Integer o2) { System.out.println("o1=" + o1 +" o2=" + o2); return (o1 < o2) ? -1 : ((o1==o2) ? 0 :1); } } 위 메서드에 대하여 질문을 드립니다. Integer[] arr = {3,2,1}을 설정하였고 Arrays.sort(arr , new AscComparator()); 기존 배열을 정렬하는데 제시된 기준으로 정렬을 할 것이라는 것까지는 이해하였습니다. 해당 메서드의 경우 o1 & o2에 대한 값을 먼저 출력을 한다음 서로 값 비교를 하는데 왜 o1에는 3이 아니라 2가 출력이 되고 o2에는 3이 출력되는지 궁금합니다.
안녕하세요. 강의를 구매하고 재밋게 보고 있는데요 지금 재귀함수 이해하기 시리즈 3편을 다 보았는데요 질문은 제가 지금 학습하고 공부하는 방법이 맞나요? 엇나가고 있는거라면 조언 해주시면 감사드려요 ㅠㅠ 강의를 보기전 직접 문제를 풀어보기 내 코드랑 강의를 보면서 코드 이해하기 강의와 노션을 완독 한 후에 풀이 코드 방식을 학습하고 해당 방식을 풀이 1번 2번 3번 대로 직접 푸는 연습하기 아무래도 파이썬 처음이다보니 익숙하지 않아서 문법을 조금 찾아보면서 하고 있긴 합니다. 예를들어 arr = [-1] * (n +2) 아래와 같은 코드가 살짝 이해가 안되었는데 출력 해보니까 js로 작성해보자면 const n = 10; const array = Array.from({ length: n + 2 }).fill(-1); 이런 코드인것 같더라요. 결론적으로는 1,2,3번 방식으로 공부하고 있으면서 파이썬 문법은 중간중간 제공해주신 파이썬 Notion이나 구글링을 통해서 학습 하면서 문제 풀이 방식들을 안보고도 풀 수 있을때까지 반복 숙달하고 있는데 이렇게 학습 하면 될까요?
http://boj.kr/18c230a9615a4114af7dcbe7a5d3dee7 안녕하세요 선생님 제가 코드를 짜보았을때 제 생각은visited[here] + 1 이 visited[there] 보다 작은경우 visited[there]값을 리셋해야된다고(visited[here] + 1로) 생각했습니다.선생님께서는 그러한 방식으로 코드를 짜지 않으셔서 그 이유가 뭔지 궁금합니다
현재 강의로 예를들면, 아래와 같이 실제 구현해야하는 비지니스로직을 제외한 코드입니다. import java.util.*; class Main { public int solution(int n, int[] arr){ int answer=1; return answer; } 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]; for(int i=0; i<n; i++){ arr[i]=kb.nextInt(); } System.out.print(T.solution(n, arr)); } }