코딩테스트25 [알고리즘] 문자열 나누기 1. 조건 문자열 s가 주어진다. 첫 글자를 x로 하고 x의 글자수를 순서대로 세기 시작한다 이 과정에서 x가 아닌 글자의 글자수도 동시에 센다. x의 글자수와 x가 아닌 글자수가 일치하는 순간 글자를 슬라이싱하고 result를 1 증가시킨다. 문자열 s가 끝날때까지 반복하고 끝에는 글자수가 서로 달라도 슬라이싱을 진행하고 result를 1 증가시킨다. 1 2023. 3. 23. [알고리즘] 프로그래머스 SQL(3) 1. 자동차 대여 기록에서 장기/단기 대여 구분하기 -- STATE_DATE와 END_DATE를 주어진 형식에 맞게 DATE_FORMAT을 활용하여 가져온다 -- END_DATE와 START_DATE의 차이가 29 미만이면 '단기 대여' -- 29 이상이면 '장기 대여'로 -- RENT_TYPE이라는 컬럼으로 가져온다. SELECT HISTORY_ID, CAR_ID, DATE_FORMAT (START_DATE, "%Y-%m-%d") AS START_DATE, DATE_FORMAT (END_DATE, "%Y-%m-%d") AS END_DATE, CASE WHEN DATEDIFF(END_DATE, START_DATE) 2023. 2. 10. [알고리즘] 프로그래머스 SQL(2) 01. 이름이 없는(있는) 동물의 아이디 SELECT ANIMAL_ID FROM ANIMAL_INS (ANIMAL_INS에서 ANIMAL_ID만을 가져온다.) WHERE NAME IS NULL (가져온 테이블에서 NAME이 NULL인것만을 가져온다.) WHERE NAME IS NOT NULL (가져온 테이블에서 NAME이 NULL이 아닌것만을 가져온다.) ORDER BY ANIMAL_ID (가져온 정보에서 ANIMAL_ID 기준 오름차순으로 정리한다.) 02. 최댓값 구하기 SELECT DATETIME FROM ANIMAL_INS (ANIMAL_INS에서 DATATIME 테이블을 가져온다.) ORDER BY DATETIME DESC LIMIT 1 (DATATIME을 내림차순으로 정렬하고 상위 데이터 한개.. 2023. 2. 9. [알고리즘] 프로그래머스 SQL(1) 01. 모든 레코드 조회하기 SELECT * FROM ANIMAL_INS (ANIMAL_INS에서 모든 테이블을 가져온다.) ORDER BY ANIMAL_ID (가져온 정보를 ANIMAL_ID 내림차순 으로 정렬한다.) 02. 역순 정렬하기 SELECT NAME, DATETIME FROM ANIMAL_INS (ANIMAL_INS에서 NAME, DATETIME 테이블만을 가져온다.) ORDER BY ANIMAL_ID DESC (가져온 정보를 ANIMAL_ID 오른차순 으로 정렬한다.) 03. 아픈 동물 찾기 SELECT ANIMAL_ID, NAME FROM ANIMAL_INS (ANIMAL_INS에서 ANIMAL_ID, NAME 테이블 만을 가져온다.) WHERE INTAKE_CONDITION = 'Sic.. 2023. 2. 9. [알고리즘] 프로그래머스 과일 장수 1. 조건 k, m 숫자 2개, score 배열 1개가 조건으로 주어진다. 다 작성했나? 생각하고 검토하는 과정에서 k가 쓰이지 않아 예외처리 할게 남아있나? 계속 고민하다가 그냥 제출했는데 통과했다. 사실 k가 왜 있는지 모르겠다.... 음.... 아시는 분? 이 문제는 조건들의 사이즈가 여유로워서 시간복잡도를 고민하지 않아도됐다. 2. 풀이 과정 맨 처음 풀이는 배열을 하나하나 만들고 슬라이싱 하여 집어넣고 만들었둔 배열들의 마지막 인덱스를 result에 일일히 더했는데 다 완성하고 보니 굳이 배열을 하나하나 만들지 않고 마지막 인덱스부분만 result에 더해주고 다음 루프로 넘어가면 되는거였는데 생각없이 푼 것 같아 좀 자괴감 든다. 3. 첫번째 풀이 function solution(k, m, sc.. 2023. 2. 5. [알고리즘] 프로그래머스 푸드 파이트 대회 알게된 내용 reverse, 전개 함수 1. 조건 이것도 굉장히 널널한 조건이였다. 뭘해도 시간초과없이 풀 수 있을것같다. 하지만 최대한 배웠던 자료구조로 풀어보려고 시도했다. 2. 풀이 배운걸 써먹어보자라는 느낌으로 풀어본 것 같다. 그래서 대충 Stack과 Queue만들어서 문자로 만들어서 return해주었다. 3. 내 풀이 function solution(food) { let result = '' const Queue = [] const Stack = [] food.map((mount, idx) => { if (idx === 0) return; Queue.push(parseInt(mount / 2)) Stack.push(parseInt(mount / 2)) }) for (let i = 0; i < .. 2023. 2. 3. 이전 1 2 3 4 5 다음