코딩 테스트/프로그래머스

    프로그래머스 - 스킬트리 문제 (자바)

    https://programmers.co.kr/learn/courses/30/lessons/49993 코딩테스트 연습 - 스킬트리 programmers.co.kr 말로 설명하는 것보다 코드로 보는게 더 이해하기 편할거 같다. 그래도 조금 설명하자면 유저의 스킬 트리 중 선행 관련 스킬에 해당 되면 indexOf를 통해서 위치를 구하여서 선후를 구하면 된다. // 프로그래머스 스킬트리 문제 class SkillTree { public int solution(String skill, String[] skill_trees) { int answer = 0; for (String skillTree : skill_trees) { int learningIdx = 0; boolean isAble = true; for ..

    프로그래머스 - 프렌즈4블록 문제 (자바)

    https://programmers.co.kr/learn/courses/30/lessons/17679 코딩테스트 연습 - [1차] 프렌즈4블록 프렌즈4블록 블라인드 공채를 통과한 신입 사원 라이언은 신규 게임 개발 업무를 맡게 되었다. 이번에 출시할 게임 제목은 "프렌즈4블록". 같은 모양의 카카오프렌즈 블록이 2×2 형태로 4개가 붙 programmers.co.kr 모든 지점에서 아래, 오른쪽, 오른쪽 아래 3곳과 비교해서 전부 같으면 삭제하는 형태로 진행했습니다. 1. char 2차원 배열 -> int 2차원 배열 2. 모든 지점의 아래, 오른쪽, 오른쪽 아래 3곳 비교 후 처리 - 우선 int 2차원 배열을 깊은 복사한다. (이유는 삭제 지점이 겹치는 경우 때문 비교에 사용하는 배열과 삭제를 반영..

    프로그래머스 - [3차] 파일명 정렬 문제 (자바)

    https://programmers.co.kr/learn/courses/30/lessons/17686 코딩테스트 연습 - [3차] 파일명 정렬 파일명 정렬 세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에 입사한 무지는 파일 저장소 서버 관리를 맡게 되었다. 저장소 서버에는 프로그램 programmers.co.kr 파일 이름을 head, number, tail로 분리 하고 comparable을 상속 받아서 head가 다른 경우 head로 비교 정렬 head가 같은 경우 number를 숫자로 변환하여 비교 정렬 하면 끝이다. ps 문자 비교시 대소문자를 구분 하지 않으므로 equalsIgnoreCase(), compareToIgnoreCase()을 사용해야한다. ..

    프로그래머스 - JadenCase 문자열 만들기 문제 (자바)

    https://programmers.co.kr/learn/courses/30/lessons/12951 코딩테스트 연습 - JadenCase 문자열 만들기 JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요. 제한 조건 programmers.co.kr 개인적으로 굉장히 구진 문제라고 생각하는데 이유는 1. 공백이 여러개 겹쳐있는 경우 예시에서는 공백이 문자마다 하나씩있는데 테스트 케이스안에는 " " 이런식으로 여러개가 붙어있는 경우가 있는 듯하다. 그래서 처음에 split을 통해서 처리했을 때 문제가 발생한다. 2. 공백 문자열을 다 살려야 한다. 공..

    프로그래머스 - 행렬의 곱셈 문제 (자바)

    https://programmers.co.kr/learn/courses/30/lessons/12949 코딩테스트 연습 - 행렬의 곱셈 [[2, 3, 2], [4, 2, 4], [3, 1, 4]] [[5, 4, 3], [2, 4, 1], [3, 1, 1]] [[22, 22, 11], [36, 28, 18], [29, 20, 14]] programmers.co.kr 행렬의 곱 계산 방식을 알면 간단하게 풀 수 있는 문제로 간단하게 설명하자면 선 행렬의 행과 후 행렬의 열을 제대로 매칭하면 된다. 이후로는 말로 설명하는 것보다 코드로 보는 것이 좋을 것 같다. class Solution { public int[][] solution(int[][] arr1, int[][] arr2) { int fLen = ar..

    프로그래머스 - 이진 변환 반복하기 문제 (자바)

    https://programmers.co.kr/learn/courses/30/lessons/70129 코딩테스트 연습 - 이진 변환 반복하기 programmers.co.kr 고려해야하는 지점은 replace 이후 길이를 통해서 제거된 0의 개수 정도입니다. ps replace와 replaceAll의 차이 String replace(CharSequnce target, CharSequence replacement) - 특정 문자를 특정 문자로 변경 String replaceAll(String regex, String replacement) - 정규식에 해당 되는 경우 특정 문자열로 변경 ex) String str = "aaabbbccccabcddddabcdeeee"; String result1 = str.r..

    프로그래머스 - 피보나치 수 문제 (자바)

    https://programmers.co.kr/learn/courses/30/lessons/12945 코딩테스트 연습 - 피보나치 수 피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다. 예를들어 F(2) = F(0) + F(1) = 0 + 1 = 1 F(3) = F(1) + F(2) = 1 + 1 = 2 F(4) = F(2) + F(3) = 1 + 2 = 3 F(5) = F(3) + F(4) = programmers.co.kr 일반적인 피보나치 수에 메모제이션을 사용하면 풀 수 있습니다. 조심해야하는 부분은 숫자의 범위인데 n이 100,000 까지 가능해서 long의 범위를 뛰어 넘게 됩니다.. 그래서 메모제이션..

    프로그래머스 - 우유와 요거트가 담긴 장바구니 (SQL)

    https://programmers.co.kr/learn/courses/30/lessons/62284 코딩테스트 연습 - 우유와 요거트가 담긴 장바구니 CART_PRODUCTS 테이블은 장바구니에 담긴 상품 정보를 담은 테이블입니다. CART_PRODUCTS 테이블의 구조는 다음과 같으며, ID, CART_ID, NAME, PRICE는 각각 테이블의 아이디, 장바구니의 아이디, 상품 종류, 가 programmers.co.kr 3가지 방식으로 풀 수 있습니다. 앞선 문제들에서 전체 체크하는 IN절보다 EXISTS가 좋을 수 있다고 말해왔는데 그럼 3번째 방식인 조인과는 어떻게 될까요? 3번째 방식의 문제는 서브쿼리를 2개 사용하면서 임시 테이블을 2개 사용하게 된다는 점인데 서브쿼리 최적화가 좋지 못한 D..