본문 바로가기

반응형

코딩테스트 연습

(10)
2019 카카오 개발자 겨울 인턴십 - 크레인 인형뽑기 게임 정답코드 import java.util.ArrayList; class Solution { public int solution(int[][] board, int[] moves) { int answer = 0; ArrayList arr=new ArrayList(); for(int i=0;i
해시 - 전화번호 목록 문제 풀이 및 정답 한 번호로 시작하는 번호가 있는지 여부를 찾는다. 문자열과 문자열을 비교한다. 정답 코드 알아야 할 것 문자열 검색 .startsWith("문자열") => "문자열"로 시작하는지 여부를 확인. true / false .contains("문자열") => "문자열"이 포함되어 있는지 여부를 확인. true / false .indexOf("문자열") => "문자열"이 포함되어 있으면 그 위치를 리턴. 없다면 -1을 리턴 matches("문자열") => 정규식을 이용해 문자열 검색. 한글, 숫자, 영어등이 있는지를 확인 ex) .matches(".*[0-9].*") 숫자가 포함되어 있는지. true / false
해시 - 완주하지 못한 선수 문제 풀이 및 정답 그냥 for문 사용해 모든 값들을 비교한 코드는 정확하지만, 시간 초과가 났다. (그 와중에 효율성 하나는 통과했다.) 매번 무식하게 함수를 호출해 for문을 계속 부르기 때문에 시간 초과가 난 것이다. 조건은 최대 참여자의 수가 100,000, 코드가 최소한의 수만 반복을 해야 시간 초과X, 완주자+1==참여자, 미완주자는 무조건 한명, 중복 이름 있음. 미완주자 한명 빼고 배열의 값들이 다 똑같으니, 둘다 정렬 되었을 때 미완주자가 있는 부분부터 두 배열 안의 값이 달라진다. 두 배열을 정렬을 하고, 최대로 배열의 길이만큼만 비교를 하게 다시 코드를 짰다. 코드 알아야할 것 간단하게 배열 정렬 하기 배열 정렬 함수 Arrays.sort(); 오름차순 => Arrays.sort(변수..
GROUP BY - 입양 시각 구하기 문제 정답(Mysql) 정답(Oracle) 알아야 되는 것 mysql HOUR(date타입컬럼) => 시간만 추출 컬럼명 as 원하는이름 => 원하는이름으로 칼럼명 표기 oracle to_char(date타입컬럼, 'hh24') 원하는칼럼명

반응형