분류 전체보기

    프로그래머스 - [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..

    프로그래머스 - 오랜 기간 보호한 동물(1) (SQL)

    https://programmers.co.kr/learn/courses/30/lessons/59044 코딩테스트 연습 - 오랜 기간 보호한 동물(1) ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr NOT EXISTS, NOT IN, LEFT JOIN을 사용하여 풀어 보았습니다. 각각의 성능 차이는 데이터량, db 종류 등에 따라 달라질 수 있을 거 같습니다. 예로 서브쿼리 최적화가 좋지 못한 DB라면 LEFT JOIN을 사용해야하겠죠...

    프로그래머스 - 숫자의 표현 문제 (자바)

    https://programmers.co.kr/learn/courses/30/lessons/12924 코딩테스트 연습 - 숫자의 표현 Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 programmers.co.kr n이 10000 이하이기 때문에 전체 계산을 해도 충분하다. 1부터 더해가면서 n과 비교해나아가면서 적절이 break문을 사용하면된다. // 프로그래머스 숫자의 표현 문제 class Solution { public int solution(int n) { int answer = 0; for (int i = 1; i