묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
12번 멘토링 질문입니다!
안녕하세요, 12번 멘토링 문제 풀다가 첫 번째 채점 결과 값이 3으로 잘 나왔습니다. 그런데 그 다음 입력부터는 전부 오답이 나오는 상황인데, 어떤 부분에서 틀린 건지 알려주시면 감사하겠습니다 ㅠㅠ // package = " "; import java.io.*; import java.util.*; class Main { public int Solution(int n, int m, int arr[][]){ String mathMark = ""; ArrayList<Integer> ans = new ArrayList<>(); HashMap<String, Integer> countMap = new HashMap<>(); for(int i = 0; i < n; i++){ // 첫째부터 계속 다음 줄 내려가서 검사 for(int j = 0; j < m; j++){ // for(int k = 0; k < m; k++){ // System.out.println("j값 : "+j+", "+"k값 : "+k); if(j != k && j < k){ // System.out.println(arr[i][j]+", "+arr[i][k]); if(i == n-1 && j == m-1 && k == m-1){ mathMark += arr[i][j]+""+arr[i][k]; } else{ mathMark += arr[i][j]+""+arr[i][k]+" "; } } } } } /* m개 값을 가지고 있는 수 찾기 */ String numArray[] = mathMark.split(" "); // 숫자 등장 횟수 카운트 for(int i = 0; i < numArray.length; i++){ countMap.put(numArray[i],countMap.getOrDefault(numArray[i],0) + 1); } // 등장 횟수가 3 이상인 숫자 Count for(Map.Entry<String, Integer> entry : countMap.entrySet()){ System.out.println(entry.getKey()+" "+entry.getValue()); if(entry.getValue() == n){ ans.add(1); } } return ans.size(); } public static void main(String[] args) throws Exception{ Main m = new Main(); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String[] numStr = br.readLine().split(" "); // 1. N과 M 입력받기 int column = Integer.parseInt(numStr[0]); int raw = Integer.parseInt(numStr[1]); int arr[][] = new int[raw][column]; for(int i = 0; i < raw; i++){ String[] test = br.readLine().split(" "); for(int j = 0; j < column; j++){ arr[i][j] = Integer.parseInt(test[j]); } } System.out.println(m.Solution(raw, column, arr)); br.close(); } }
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
Asio 기반 서버 멘토링
안녕하세요 루키스님. 질문할 곳을 찾지 못해 이 곳에 질문하게 되었습니다.이번 Asio 기반 C++서버 멘토링을 일단 신청은 해놨는데, 선수 지식으로 part4 게임서버 정도까지의 수강이 필요할까요 ? 요구되는 수준을 알려주시면 감사하겠습니다 !
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
멘토링 문제 질문 드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강의에서 푼 거랑 다르게 풀었습니다 우선 각각의 학생에 대해서 '자신보다 등수가 높은 적이 있는 학생'을 bool이라는 boolean형 배열에 저장했습니다. (true면 그 인덱스번호의 학생이 자신보다 등수가 높은 적이 있었던 것) 그럼 true가 아닌 인덱스는 모두 멘티가 될 수 있는 경우이기 때문에, 갯수만큼 answer에 더해서 출력하도록 했습니다. 이렇게 하면 강의 방식보다 for문 개수가 줄어드는데, 시간복잡도 같은 측면에서 봤을 때 어떤 방식이 더 빠른가요??? 이유도 궁금합니다.
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
안녕하세요. 코드 리뷰 부탁드립니다.
function solution(test) { let answer = 0; let flag = 0; let m = test[0].length; let n = test.length; // 첫번째 시험에서 도출되는 총 경우의 수 for (let i = 1; i < m; i++) answer += i for (let i = 0; i < m - 1; i++) { for (let j = i + 1; j < m; j++) { flag = 0; for (let k = 1; k < n; k++) { if (test[k].indexOf(test[0][i]) > test[k].indexOf(test[0][j])) { flag = 1; break; } } if (flag) answer--; } } return answer; } 강사님께서 이 문제 관련하여 다른 분께 답변해주신 테스트케이스는 모두 통과하였습니다. 코드 설명드리자면, 첫번째 시험으로 도출되는 경우의 수를 구한 후 for문을 돌면서 이후 시험에서 역전되면 경우의 수를 차감해나가는 방식입니다. (중복 방지를 위해 break로 for문을 빠져나가도록 했습니다.) 귀찮으시겠지만 코드보시고 어떠한지 피드백 해주시면 정말 감사하겠습니다 :)