728x90
반응형

전체 글 155

프로그래머스 - Level 2. JadenCase 문자열 만들기 / JavaScript (js)

문제설명 문제분석 이 문제는 각 문자를 탐색하면서 조건에 부합하는지 확인하는 문제입니다. 여러 형태로 접근할 수 있겠지만, 저는 한 단어의 구분을 공백으로 보기로 했습니다. 각 문자를 탐색한다. 문자가 공백이 아닌 경우, strArr에 현재의 문자를 추가한다. 문자가 공백인 경우, strArr.join("") + 공백을 answer에 추가한다. 이때 strArr.length가 0이면 toUpperCase를 한다. 이때 strArr.length가 0이 아니면 toLowerCase를 한다. 반복문이 끝난 후에도 strArr에 담겨있는 단어가 있다면 answer에 추가한다. 요약했으니, 코드를 짜보겠습니다. 이해하기 쉽게 코드작성하기 function solution(s) { let answer = ""; co..

230215

프로그래머스 Level 1 정복 2월 15일 (수) Today I Learned 프로그래머스 Level 1까지 정복했다. 이제 몇 문제는 포스팅하고, Level 2를 풀어봐야겠다.추천 알고리즘을 실제 서비스를 위해 설계해보고 있다. 실제 구현을 위해 고민하다보니 생각보다 고민이 깊어진다. 밤중에 좋은 아이디어가 또 떠오르면 업데이트 하는걸로. Tomorrow I'll Learn 추천 알고리즘 설계 공유 프로그래머스 level 1 포스팅 프로그래머스 level 2 문제풀기

Today I Learned 2023.02.15

프로그래머스 - Level 1. 소수 만들기 / JavaScript (js)

문제설명 문제분석 주어진 숫자에 중복은 없고, 3개를 골라서 더했을 때 소수가 되는 경우를 세아리면 되는 간단한 문제입니다. 소수를 판별하는 함수를 구현한다. 배열의 요소 중 3개를 선택하는 로직을 구현한다. 문제를 단순화 했으니 이해하기 쉽게 코드를 짜보겠습니다. 이해하기 쉽게 코드작성하기 function solution(nums) { let answer = 0; const arr = []; // nums 배열에서 3가지 요소를 임시 배열 arr에 담고, 요소의 합이 소수인지 검사 (function recursion(nums, idx) { if (arr.length === 3) { if (isPrime(arr.reduce((a,c)=>a+c),0)) { answer++; return; } } for (..

230214

프로그래머스 문제를 풀다보니 생각보다 재밌다. 가끔 수정할 거 없이 잘 나온 코드가 있는데, 블로깅을 할까말까 고민한다. 근데 이런 문제는 언제든 만나면 비슷한 코드가 나올 거 같으므로 패스하는 게 낫겠다 싶다. (딱히 배울 게 없다) 2월 14일 (수) Today I Learned 오늘은 면접도 보고오고, 작업도 좀 했다. 그러나 골자는 프로그래머스 문제풀기다. 프로그래머스 level 0부터 시작해서 도장깨기 하고 있다 Lv.1이 5문제 남았다. 곧 Lv.2만 푸는 단계로 진입할 거 같다. Tomorrow I'll Learn 데이터 작업 마무리 및 컨펌 요청 추천 알고리즘 모식도 작성 프로그래머스 문제 풀기

Today I Learned 2023.02.15

프로그래머스 - Level 1. 콜라 문제 / JavaScript (js)

문제설명 문제분석 이 문제는 옛날 콜라 문제의 2, 1 자리에 a, b를 넣으면 해결되는 문제입니다. 현재 가지고 있는 빈 병 중 a개 묶음이 몇 개 나오는지 구합니다. 이 묶음의 수와 묶음에 포함되지 못한 낱병의 합으로 다시 한 번 a개 묶음이 몇 개 나오는지 구합니다. 동일한 과정을 빈 병의 총 갯수가 한 묶음에 묶여야하는 a개 미만인 경우까지 반복합니다. 문제를 단순화 했으니 이해하기 쉽게 코드를 짜보겠습니다. 이해하기 쉽게 코드작성하기 function solution(a, b, n) { return recursion(a, b, n); } function recursion(a, b, emptyBottles) { // 빈 병의 갯수가 한 묶음의 기준인 a개보다 적은 경우 0을 리턴 if(emptyBo..

프로그래머스 - Level 1. 행렬의 덧셈 / JavaScript (js)

문제설명 문제분석 두 행렬의 같은 요소를 더해주면 되는 문제입니다. 매우 간단하므로 예시를 작성하되 자세한 설명은 생략합니다. /* arr1: arr2: return: * [ [ [ * [1, 2], [3, 4], [4, 6], * [2, 3], [5, 6], [7, 9], * ] ] ] */ 이해하기 쉽게 코드작성하기 function solution(arr1, arr2) { var answer = []; for(let r = 0; r < arr1.length; r++) { const row = []; for(let c = 0; c < arr1[r].length; c++) { row.push(arr1[r][c] + arr2[r][c]); } answer.push(row); } return answer; ..

Open AI의 chatGPT API를 기다리며 | chatGPT PLUS 한국 상륙!

openAI의 chatGPT API는 아직 조금 더 기다려야 합니다. 그동안 있었던 내용을 업데이트할 겸 포스팅을 해봅니다. 구글의 AI 챗봇 Bard 먼저 구글의 소식입니다. chatGPT의 등장으로 구글이 사내 경보 단계를 "코드 레드"까지 끌어올렸습니다. 얼마 지나지않아 꾸준히 발전해오던 구글의 AI chatbot "바드"가 공개되었습니다. 그러나 바드의 공개시연장에서 있었던 질의응답에서 바드가 잘못된 답변을 하며 구글의 주가가 폭락하는 상황까지 벌어졌습니다. 문제가 된 질문은 2021년 12월 25일 크리스마스에 우주로 발사된 "제임스 웹 우주 망원경"에 대한 질문이었습니다. 당시 제임스 웹 우주 망원경은 기간을 초과하여 우주의 정보를 모아주던 허블 망원경의 다음 타자로 알려져 있었습니다. 그러나..

프로그래머스 - Level 2. 호텔 대실 / JavaScript (js)

문제설명 문제분석 타음 스케쥴링 문제입니다. OS 수업때 스케줄러를 배웠다면 좀 더 이해하기가 수월합니다. 이문제에 대입해서 요약하자면 특정 시간동안 다른 작업은 같은 공간(이 경우에는 방)에서 진행할 수 없습니다. 따라서 새로운 공간이 필요합니다. 그러나 이전 방이 비었다면, 새로운 공간을 굳이 만들 필요가 없습니다. 이 경우에는 10분간 유휴 시간이 주어지면, 다시 그 공간을 사용할 수 있습니다. 모든 입력값에는 시작시각, 종료시각이 있다. 유휴 시간을 포함해 각 시간이 중복되지 않을 경우, 방을 추가하지 않는다. 유휴 시간을 포함해 시각이 중복되는 경우, 방을 추가한다. 종료시각이 담긴 방 배열을 두고, 종료 시각을 업데이트한다. 마지막 입력값에 도달했을 때 방 배열의 길이가 최종적으로 필요한 방의..

카테고리 없음 2023.02.12

프로그래머스 - Level 1. 둘만의 암호/ JavaScript (js)

문제설명 문제분석 문자열 암호 문제입니다. 문자열 s의 각 요소를 index만큼 뒤의 알파벳으로 치환하여 리턴하면 됩니다. 다만 이때 skip에 포함된 알파벳은 (index 만큼)에 포함되지 않습니다. 가벼운 마음으로 풀어보겠습니다. 문자열 s의 각 요소를 skip에 포함되지 않은 뒤의 알파벳 중 index 만큼 건너간 알파벳으로 치환한다. 이해하기 쉽게 코드작성하기 function solution(s, skip, index) { // 모든 알파벳 중 skip에 포함된 알파벳 제외 const remainAlphabet = "abcdefghijklmnopqrstuvwxyz".split("").filter(x => !skip.includes(x)); // 문자열 s의 각 요소를 남은 알파벳 중 index 만..

프로그래머스 - Level 1. 개인정보 수집 유효기간 / JavaScript (js)

문제설명 문제분석 파라미터는 순서대로 오늘 날짜, 각 약관별 유효기간, 약관별 사인한 날짜가 전달됩니다. 이 작업은 한 명에 대한 작업이고, 한 명이 사인한 약관에 대해 오늘날짜로 확인하는 작업이 진행됩니다. 문제를 풀기에 앞서, 만약 내가 실무에서 이런 작업을 진행한다고 생각해봤습니다. 아마 나는 매일 한번씩 모든 사용자에 대해 이 함수를 실행하는 대신, 매월이나 매년 또는 사인하는 순간에 큐잉할 거 같습니다. 당연히 개인정보보호법이 강화되어 시행되는 조치인만큼, 처음부터 약관을 파기하는 로직이 필요하진 않았을 것입니다. 따라서 레거시한 데이터를 바탕으로 위 작업이 진행될 것이고, 최초의 1회에 한해서는 모든 사용자를 대상으로 반드시 이 함수를 실행해야한다고 추론할 수 있습니다. 그럼에도 불구하고 시행..

728x90
반응형